如何从列表视图组上的按钮单击事件调用并将参数传递给片段

How to call and pass parameters to a fragment from a button click event on the listview group

我在组 header 中有一个带有按钮和文本视图的可扩展列表视图。 我使用实现视图持有者的适配器。

我想在按钮上包含一个点击事件,这样我就可以得到组 header 中的文本视图文本,并且我想将该字符串传递给另一个片段。

我还想展示另一个片段。

我卡住了,我想不通,

  1. 如何从单击按钮的片段中的可扩展列表视图中读取文本视图值 和
  2. 如何将Title 的值传递给另一个片段。

我需要使用

 GViewHolder.myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {    
        }

    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
});

请注意,我看不到 public void onItemClick 在单击按钮时被击中!


我实现了一个适配器如下: 部分代码为

   public class ListViewAdapter extends BaseExpandableListAdapter {
    class GViewHolder {
     public TextView Title;
     public Button myButton;
    }
   GViewHolder.myButton.setFocusable(false);
   GViewHolder.myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {


 // How to implement this in the fragment ???
    }
   });
 }

Adapter实现部分片段如下:

   private ListView eList = null;
   InterFragmentNavigator interFragmentNavigator;
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
   View view = inflater.inflate(R.layout.fragment_event_list, container, false);
   eList = (ListViewAdapter) view.findViewById(R.id.eView);
   ListViewAdapter listDataAdapter = new ListViewAdapter(getActivity(), groupes);
   eList.setAdapter(listDataAdapter);

   eList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view,int position, long id) {

// Here, I want to read the textview value of Title next to button

 TextView textViewItem = ((TextView) view.findViewById(R.id.Title));
 String Title = textViewItem.getText().toString();
**//Here, I want to call another fragment and pass Title as parameter.**                

        return view;
    }

假设您正在通过点击创建新片段,然后添加类似内容。

Fragment detailFragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putString("TITLE", "your title");
detailFragment.setArguments(bundle);

然后在这里进行横断面。然后在 detailFragment 中你可以做

Bundle bundle = getArguments();
String title = bundle.getString("TITLE") ;