我有两个片段,一个是列表视图,另一个是按钮和编辑文本。
我在按下按钮时在数据库中输入信息时尝试清除编辑文本,然后从同一onClick
方法中清除编辑文本。
有没有办法从不同的片段访问编辑文本?
答案 0 :(得分:0)
首先你需要定义一个接口
public class FragmentA extends Fragment {
OnClickButton mCallback;
// Container Activity must implement this interface
public interface OnClickButton {
public void onClickClear();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (OnClickButton) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnClickButton");
}
}
...
}
然后你的第二个片段
public class FragmentB extends Fragment {
private EditText mEditText;
public void clearEditText() {
mEditText.setText("");
}
...
}
最后一个是在Activity
中实现FragmentA的接口public static class MyActivity extends Activity
implements FragmentA.OnClickButton{
public void onClickClear() {
FragmentB fragmentB = (FragmentB)
getSupportFragmentManager().findFragmentById(R.id.fragment_b);
if (fragmentB != null) {
fragmentB.clearEditText();
}
}
...
}