【问题标题】:How to get value from custom adapter in same fragment如何从同一片段中的自定义适配器获取价值
【发布时间】:2016-07-20 11:01:28
【问题描述】:

我是安卓新手。我有一个片段(菜单)和一个自定义适配器(MenuListCustomAdapter)。在那个片段中,有一个列表视图和一个文本视图。每个列表视图包含两个按钮(添加和子)和文本视图。我的疑问是,我为自定义适配器中的(添加和订阅)按钮编写了 onclicklistener,同时单击我想更改片段(菜单)中的文本视图的按钮。

菜单片段:

adapter = new MenuListCustomAdapter(itemList, this.getActivity(),"http://xyz/images/fish.png");
    menuList.setAdapter(adapter);

自定义适配器:

 holder.plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int quantity = Integer.parseInt(holder.qty.getText().toString());
                if(list.size()>0){

                        String value = list.get(position).Quantity.toString();
                        Log.d("plus Position on Click", String.valueOf(position));
                        int count = Integer.parseInt(value)+1;
                        list.get(position).Quantity = String.valueOf(count);
                        holder.qty.setText(String.valueOf(count));
                        Log.d("plus value", String.valueOf(count));

                    if(count>0){
                        list.get(position).selFlag = true;

                    }else {
                        list.get(position).selFlag = false;
                    }

                }
            }
        });

请任何人帮助我!

【问题讨论】:

  • 那么你在哪里得到了错误?
  • 我没有收到错误。我不知道如何访问片段中的 adpater 小部件
  • 我已经设置好了。如果我从适配器单击按钮。我想将值传递给片段

标签: java android


【解决方案1】:

你应该使用接口来处理List的点击事件。

在你的适配器中

 // Define listener member variable
private static OnItemClickListener listener;
// Define the listener interface
public interface OnItemClickListener {
    void onItemClick(View itemView, int position);
}
// Define the method that allows the parent activity or fragment to define the listener
public void setOnItemClickListener(OnItemClickListener listener) {
    this.listener = listener;
}

在您的适配器 ViewHolder 中:

plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (listener != null)
                    listener.onItemClick(v, k);
            }
        });

在你的片段中:

adapter.setOnItemClickListener(new MenuListCustomAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {

              //you can check which view was clicked
               if(view.getId() == R.id.viewID){

                 //do your stuff here
               }
      }
    });

【讨论】:

    猜你喜欢
    • 2017-08-04
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    相关资源
    最近更新 更多