您的位置:首页 > 其它

Interface的两种使用方式

2016-05-25 19:59 525 查看
接口是我们在编程中经常使用的,原来对于使用方式一直模模糊糊的,这两天整理了一下。作为菜鸟,有不对的地方请多多指教,不喜勿喷。

通过set方法进行传递。

例如把Fragment里的值传递到Avtivity的情况。这样可以直接在Fragment调用接口方法。代码如下:

1.首先定义了一个接口
public interface TextViewInfoListener {
void textViewInfo(String info);
}
2.然后在Fragment中声明一下,并且写一个set方法,这样在Activity中拥有这个Fragment的实例,是可以直接进行set的。
private TextViewInfoListener tvInfoListener;

public void setTvInfoListener(TextViewInfoListener tvInfoListener) {
this.tvInfoListener = tvInfoListener;
}
3.在Activty中set之后,这个接口其实已经是Activity中的。可以直接进行调用。
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.frg_one_btn1 :
tvInfoListener.textViewInfo("按钮A");
break;
case R.id.frg_one_btn2 :
tvInfoListener.textViewInfo("按钮B");
break;
}
}
4.这是Activity中声明fragment,并且进行set的地方。set完成后当你在fragment中进行调用的使用,这里就能收到消息。
Frg_one fragmentInterface = new Frg_one();
fragmentInterface.setTvInfoListener(new TextViewInfoListener() {
@Override
public void textViewInfo(String info) {
main_tv1.setText(typeInfoOne);
}
});


2.Activity向Fragment中传值:

在Fragment方法上直接进行实现,并重写实现方法。

首先需要一个接口:

public interface ButtonInfoListener {
void buttonInfo(String info1, String info2);

}


然后在fragment上实现。

public class Frg_one extends Fragment implements ButtonInfoListener {

@Override
public void buttonInfo(String info1, String info2) {

}

}


最后在Activity中调用。

Frg_one fragmentInterface = new Frg_one();
fragmentInterface.buttonInfo("1","2");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: