使用片段将数据从列表视图传递到编辑文本?

时间:2012-02-16 04:29:27

标签: android

我正在开发一个由两个片段组成的应用程序。

1.Fragment(A)包含ListView

2.Fragment(B)包含EditText

3.我的问题是,如果我在ListView中选择项目时,如何将数据从EditText传递到ListView,那么数据需要在EditText中显示我怎么能实现这个......我是新手......

3 个答案:

答案 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)