【问题标题】:How to send to texts to listview using fragment activity如何使用片段活动将文本发送到列表视图
【发布时间】:2017-10-07 15:46:04
【问题描述】:

我使用带有两个选项卡的 viewpager 创建了片段活动,并创建了带有两个文本视图的列表视图。我想将标签一中的两个文本作为标题和描述发送到标签二。我已经成功发送了描述,但是我没有发送标题(]我只能发送一个文本到列表视图)。

我的 fragment_one.java :

public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    viewPager = (ViewPager)view.findViewById(R.id.viewPager);
    Button btnPassData = (Button) view.findViewById(R.id.btnPassData);

    final ListView list=(ListView)view.findViewById(R.id.list_view);
    final EditText inData = (EditText) view.findViewById(R.id.inMessage);
    btnPassData.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SM.sendData(inData.getText().toString().trim());
        }
    });

}

interface SendMessage {
    void sendData(String message);
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);

    try {
        SM = (SendMessage) getActivity();
    } catch (ClassCastException e) {
        throw new ClassCastException("Error in retrieving data. Please try again");
    }
}
}

我的 fragment_two.java :

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View rootView = inflater.inflate(
            R.layout.fragment_two, container, false);
    return rootView;


}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    listView = (ListView) view.findViewById(R.id.list_view);
    adapter = new ArrayAdapter<String>(getActivity(), R.layout.single_item,R.id.tvdesc, arrayList);

    listView.setAdapter(adapter);
}

protected void displayReceivedData(String message) {
    arrayList.add(0,message);
    adapter.notifyDataSetChanged();

}
}

【问题讨论】:

标签: java android android-layout listview android-fragments


【解决方案1】:

您应该使用从 fragment_one 到主要活动的回调数据,并将数据从活动发送到 fragment_two(并刷新视图)

您可以使用的活动回调片段How to make a callback between Activity and Fragment?

和Fragment_two可以在Activity中设置这个值, 前任, 私有片段 mFragmentTwo; ………… mFragmentTwo=new Fragment();

并且可以通过函数设置值:mFragmentTwo.displayReceivedData(yourString)

【讨论】:

    猜你喜欢
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多