gpt4 book ai didi

android - 从按钮单击检测列表项

转载 作者:行者123 更新时间:2023-11-30 02:06:41 25 4
gpt4 key购买 nike

我有一个带适配器的 ListView 。每个项目都有两个按钮,我需要检测按下按钮的列表项。这是我的代码:

List<String> mList = new ArrayList<>(Arrays.asList(mNames));
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(
getActivity(),
R.layout.list_item_friends_new,
R.id.friends_new_name,
mList
){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
Button button = (Button) view.findViewById(R.id.btn_1);
Button button1 = (Button)view.findViewById(R.id.btn_2);

button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "user #" + position + " was added", Toast.LENGTH_SHORT).show();
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "user #" + position + " was removed", Toast.LENGTH_SHORT).show();
}
});
return view;
}
};

它向我显示了这个错误:

Error:(67, 47) error: local variable position is accessed from within inner class; needs to be declared final.

请帮我解决这个问题。

最佳答案

当您使用一个帮助变量时,您可以解决它,该变量是最终的并且具有 public View getView(int position, View convertView, ViewGroup) 的 position 参数的值父) 方法。尝试这样的事情:

final int selectedPosition = position;

此行位于下一行 button1.setOnClickListener(new View.OnClickListener() 之前,然后在您需要当前位置的位置,使用 selectedPosition 变量代替position 不是 final 的变量

关于android - 从按钮单击检测列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30575355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com