Activity和Fragment如何通信?

1.声明接口

```
public class MyFragment extends Fragment implements OnClickListener{
    //声明接口
	public interface ReturnDataListener{
		void returnDataSuccess();
	}
}
```

2.实现接口

```
public class MainActivity extends Activity implements OnClickListener,ReturnDataListener{
	
	//实现方法
	@Override
	public void returnDataSuccess() {
		Toast.makeText(MainActivity.this, "fragment 返回数据了", Toast.LENGTH_SHORT).show();
	}
}
```



3.设置引用

```
public class MyFragment extends Fragment implements OnClickListener{
	public interface ReturnDataListener{
		void returnDataSuccess();
	}
	
	private ReturnDataListener mReturnDataListener;
	private Button mSendMessage;
	
	@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
		mReturnDataListener = (ReturnDataListener)activity;//设置引用
	}
	
	private void sendMessage(){
		if (mReturnDataListener !=null){
			mReturnDataListener.returnDataSuccess();
		}
	}
}

```


总结:利用onAttach(Activity activity)接收宿主Activity,即接口实现类

还有其他的方法:
比如:EventBus 、广播、全局变量等

你可能感兴趣的:(Android知识簿)