【发布时间】:2021-08-05 20:37:42
【问题描述】:
【问题讨论】:
标签: java android listview position buttonclick
【问题讨论】:
标签: java android listview position buttonclick
你可以像往常一样做(就像在MainActivity中一样),只需在GetView(...)中链接它
【讨论】:
在您的 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 视图而不是列表视图更简单。但是如果你已经创建了也没关系。
【讨论】:
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。
【讨论】: