识别一个按钮点击列表视图android

Posted

技术标签:

【中文标题】识别一个按钮点击列表视图android【英文标题】:Identify a button click on list view android 【发布时间】:2021-08-05 20:37:42 【问题描述】:

我使用扩展ArrayAdapter<String> 的自定义适配器创建了ListView。单击+ 按钮时,我需要将项目名称添加到ArrayList

【问题讨论】:

【参考方案1】:

你可以像往常一样做(就像在MainActivity中一样),只需在GetView(...)中链接它

【讨论】:

【参考方案2】:

在您的 ArrayAdapter.java 中,添加以下内容:

    private OnItemClickListener mListener;

    public interface OnItemClickListener
    
        void onAddClick(int position);
    

    public void setOnItemClickListener(OnItemClickListener listener)
    
        mListener = listener;
    

在同一文件上的 Holder 函数中,执行以下操作:

    AddButtonVariable.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            if(listener != null)
            
                int position = getAdapterPosition();
                if(position != ListView.NO_POSITION)
                
                    listener.onAddClick(position);
                
            
        
    );

Activity.java 文件的 onResponse 函数中,在 setAdapter 之后添加:

listAdapter.setOnItemClickListener(new ArrayAdapter.OnItemClickListener() 
    @Override
    public void onAddClick(int position)           
            functiontoAdd(String.valueOf(position));
    
);

现在,最后,在您的 Activity.Java 文件中,在最后(类的右括号之前)添加以下内容:

private void functiontoAdd(String position)

    // rest of the code to add item in cart

看,使用 Recycler 视图而不是列表视图更简单。但是如果你已经创建了也没关系。

【讨论】:

【参考方案3】:
listview.setOnItemClickListener(new OnItemClickListener()
       
          @Override
          public void onItemClick(AdapterView<?> adapter, View v, int position,
                long id) 
          
        //I am assuming the ArrayAdapter is having list of dish name as string if the list is of Custom class please change the below code as per it.
                String dish = (String)adapter.getItemAtPosition(position); 
    
          
       );

adapter AdapterView:发生点击的 AdapterView。

view View:AdapterView中被点击的view(这将是adapter提供的view)

position int:视图在适配器中的位置。

id long:被点击项的行id。

【讨论】:

以上是关于识别一个按钮点击列表视图android的主要内容,如果未能解决你的问题,请参考以下文章

带有列表子项可聚焦android的列表视图上下文菜单

Android Listview 多个按钮点击

Android列表视图setOnItemClickListener不起作用

Android如何使用复选框识别列表视图中的项目

Android:根据列表视图中点击的项目计算价格。应用程序在总活动 Logcat 中崩溃:无效浮点数:“”

Android:从自定义列表视图中单击的按钮获取列表视图项目