如何使用Viewpager从片段A上的单击按钮向片段B中的listview添加新项目

时间:2016-11-28 09:10:00

标签: listview

我在Fragment SpeechToText中有一个edittext和一个按钮(Viewpager中的ID为2)。当我点击按钮时,它会将此edittext发送到片段MyListWord(Viewpager中的ID为0)(我使用界面)。 (这意味着将数据从选项卡3发送到Tablayout中的选项卡1)

我在Fragment MyListWord中有一个列表视图。我如何将此文本添加到此列表视图?

我的代码:

Fragment SpeechtoText:

private SendData mSendata;

public interface SendData {
    public void SendDataMainActivity(String contentWord);
}


@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        this.mSendata = (SendData) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException(activity.toString() + e.toString());
    }
}

onButtonclickListener:

String contentWord = edittext.getText();
mSendata.SendDataMainActivity(contentWord);

MainActivity实现SpeechToText.SendData

public void SendDataMainActivity(String contentWord)
{
    FragmentManager manager = getSupportFragmentManager();
    MyListWord myListWord = (MyListWord)manager.findFragmentByTag("android:switcher:" + pager.getId() + ":" + 0);
    myListWord.Getdata(contentWord);
}

在Fragment MyListWord中:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_my_list_word, container, false);

    lv = (ListView) view.findViewById(R.id.lvMylistword);

    ArrayList<String> Word = new ArrayList<String>();

    adapter = new ArrayAdapter(
            getActivity(),
            android.R.layout.simple_list_item_1,
            Word 
    );
    lv.setAdapter(adapter);

    return view;
}

 public void Getdata(ContentWord contentWord)
{
    if(contentWord.getWordContent().length()!=0)
    {
       ////I want add this contentWord to listview .....
    }
}

在Getdata函数中,我如何将这个单词添加到listview,我在Getdata中尝试过notifyDatasetChanged()但是没有用。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

对我的愚蠢问题:D

因为我将标签3中的数据发送到标签1,所以它出错。

我将Fragment MyListWord编辑为Tab 2,并将Fragment SpeechToText编辑为tab 3,它成功

这是我在Getdata中的代码

 public void Getdata(ContentWord contentWord)
{
    if(contentWord.getWordContent().length()!=0)
    {
        ArrayList<ContentWord> List_contentWords = new ArrayList<ContentWord>();
        List_contentWords = adaptor.getListData();
        List_contentWords.add(new ContentWord("ABCD","Noud",0));
        adaptor.setListData(List_contentWords);
        adaptor.notifyDataSetChanged();
    }
}