我正在开发一个由两个片段组成的应用程序。
1.Fragment(A)包含ListView
。
2.Fragment(B)包含EditText
。
3.我的问题是,如果我在ListView
中选择项目时,如何将数据从EditText
传递到ListView
,那么数据需要在EditText中显示我怎么能实现这个......我是新手......
答案 0 :(得分:1)
见链接:
http://developer.android.com/guide/topics/fundamentals/fragments.html#CommunicatingWithActivity
在ListFragment中编写以下方法:
public static class FragmentA extends ListFragment {
OnArticleSelectedListener mListener;
...
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// Append the clicked item's row ID with the content provider Uri
Uri noteUri = ContentUris.withAppendedId(ArticleColumns.CONTENT_URI, id);
// Send the event and Uri to the host activity
mListener.onArticleSelected(noteUri);
}
...
}
您需要在活动中实现OnArticleSelectedListener,并在方法中从文章中获取id,并在editText上设置:
public interface OnArticleSelectedListener {
public void onArticleSelected(Uri articleUri);
}
答案 1 :(得分:0)
也许您可以将信息传递给活动,然后活动可以将其传递回另一个片段。如果你已经在ListFragment中保留了适配器的句柄,那么这样的东西可能会起作用:
protected MyActivity activity;
@override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activity = (MyActivity) getActivity();
}
public void onListItemClick(ListView l, View v, int position, long id) {
Cursor c = adapter.getCursor();
c.moveToPosition(position);
String name = c.getString(c.getColumnIndex(nameOfColumn));
activity.doSomethingWithName(name);
}
然后你需要的是在yoru活动中适当定义的方法。
答案 2 :(得分:0)