识别一个按钮点击列表视图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列表视图setOnItemClickListener不起作用