Activity中触发,Fragment中响应
Activity写接口和触发
private OnClickActivityListener mOnClickActivityListener;
/**
*接口定义
**/
public interface OnClickActivityListener {
void onClickActivity();
}
/**
* 绑定接口
*
* @param
*/
@Override
public void onAttachFragment(Fragment fragment) {
try {
mOnClickActivityListener = (OnClickActivityListener) fragment;
} catch (Exception e) {
}
super.onAttachFragment(fragment);
}
//触发
btnActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mOnClickActivityListener!=null){
mOnClickActivityListener.onClickActivity();
}
}
});
Fragment中接口实现
public class InterfaceBackFragment extends Fragment implements InterfaceBackActivity.OnClickActivityListener {
@Override
public void onClickActivity() {
btnFragment.setText("Activity中的按钮被点击");
}
}
Fragment中触发,Activity中响应
Fragment中写接口和触发
private OnFragmentInteractionListener mListener;
/**
*接口定义
**/
public interface OnFragmentInteractionListener {
void onFragmentInteraction();
}
/**
*绑定
**/
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
//触发
btnFragment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onFragmentInteraction();
}
}
});
Activity中接口实现
public class InterfaceBackActivity extends AppCompatActivity implements InterfaceBaceFragment.OnFragmentInteractionListener{
@Override
public void onFragmentInteraction() {
Toast.makeText(getApplicationContext(), "点击了Fragment中的控件", Toast.LENGTH_SHORT).show();
}
}
Activity中触发,Adapter中响应
Adapter接口定义和触发
/**
*接口定义
**/
public interface OnChildItemClickListener {
void onItemClick(int pos);
}
/**
*Adapter中的构造函数传入listener
**/
public InterfaceBackAdapter(ArrayList<String> mList, OnChildItemClickListener listener) {
this.mList = mList;
mListener = listener;
}
//触发
holder.mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onItemClick(position);
}
});
Activity中实现
private InterfaceBackAdapter.OnChildItemClickListener mListener;
private InterfaceBackAdapter mInterfaceBackAdapter;
mInterfaceBackAdapter = new InterfaceBackAdapter(mList, mListener);
mListener = new InterfaceBackAdapter.OnChildItemClickListener() {
@Override
public void onItemClick(int pos) {
Toast.makeText(getApplicationContext(), "我点击了第" + pos + "项", Toast.LENGTH_SHORT).show();
}
};
本文详细讲解了如何在Android应用中,Activity通过接口触发Fragment的响应,以及Fragment如何实现并响应Activity的回调。涉及接口定义、绑定和事件监听的实现,适合理解Android组件间通信的开发者阅读。
292

被折叠的 条评论
为什么被折叠?



