【发布时间】:2016-01-12 08:36:27
【问题描述】:
嗨,在我的活动中,我有一个带有 textview 的 fragmentA,当我单击 textview 时,这个 fragmentA 被替换为具有列表视图的片段。现在,当我单击 litsItem 时,我必须返回到 fragmentA 并使用列表项更新 textview。
实施:
我在片段中创建了一个接口,
public interface OnListItemSelectedListener {
public void onListItemSelected(String msg);
}
在 onAttach() 我有下面的代码
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
try {
mListener = (OnListItemSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnListItemSelectedListener");
}
}
在我的列表项 OnClickListener() 我有这个
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String message = parent.getItemAtPosition(position).toString();
mListener.onListItemSelected(message);
}
});
然后在我的活动中我实现了接口
@Override
public void onListItemSelected(String msg) {
// TODO Auto-generated method stub
ISOFragment myFrag = (ISOFragment)
getSupportFragmentManager().findFragmentById(R.id.isomain);
if (myFrag != null) {
myFrag.incrementdata(msg);
} else {
ISOFragment newFrag = new ISOFragment();
Bundle args = new Bundle();
args.putString("selecteitem", msg);
newFrag.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, newFrag);
transaction.addToBackStack(null);
transaction.commit();
}
}
现在由于 fragmentA 不可用,现在转到 else 部分,我应该如何将 bundle 参数传递给 fragmentA 并更新 textview。
假设我从 A 到 B 并从 B 回到 A,如果我在 onCreateView() 中获取参数并更新片段 A 中的文本视图,如果我第一次运行它正在检查将为空的参数。
【问题讨论】:
-
@vilpe89 嗨,如果我在 onCreateView() 中获取参数并更新片段 A 中的文本视图,并且当我第一次运行时,我将从 A 到 B 并从 B 回到 A它正在检查将为空的参数
-
显示代码您如何尝试获取参数
-
@vilpe89 这就是我获取论点的方式。字符串 strtext=getArguments().getString("selecteitem");钻孔选择.setText(strtext);