gpt4 book ai didi

java - 将 onClickListener 设置为自定义适配器

转载 作者:行者123 更新时间:2023-12-02 06:02:08 24 4
gpt4 key购买 nike

各位社区大家好,我的这个适配器带有 2 个 button 和 2 个 textview

@Override
public View getView(int position, View view, ViewGroup parent) {
if(view == null) {
holder = new Holder();
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.my_adapter, null);
holder.result = (TextView)view.findViewById(R.id.description);
holder.value = (TextView)view.findViewById(R.id.value);
holder.add = (Button)view.findViewById(R.id.add);
holder.subtract = (Button)view.findViewById(R.id.subtract);

myObject = getItem(position);
holder.result.setText(myObject.result);
holder.value.setText(myObject.value);

view.setTag(holder);
} else {
holder = (Holder)view.getTag();
}

holder.add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
}
});

return view;
}

现在我的问题是:如果我希望当用户按下添加按钮时将 textview 的文本设置为(例如)5,我该怎么做?如果我放入 onCLick 方法

holder.result.setText("My text") 设置最后一个 TextView 的文本,而不是所选行项目的相应 TextView (我禁用了 ListView 上的单击):

@Override
public boolean isEnabled(int position) {
return false;
}

我的问题有解决办法吗?

最佳答案

您应该将代码放在适配器内的 getView 方法中,并记住使用对当前 Button/TextVeiw 的引用,以便每个Button 将对应于特定的 TextView

附注我在你的代码中发现了一些东西,请检查一下:

@Override
public View getView(int position, View view, ViewGroup parent) {
if(view == null) {
holder = new Holder();
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.my_adapter, null);
holder.result = (TextView)view.findViewById(R.id.description);
holder.value = (TextView)view.findViewById(R.id.value);
holder.add = (Button)view.findViewById(R.id.add);
holder.subtract = (Button)view.findViewById(R.id.subtract);

view.setTag(holder);
} else {
holder = (Holder)view.getTag();
}

myObject = getItem(position);
holder.result.setText(myObject.result);
holder.value.setText(myObject.value);
final TextView tv = holder.result;

holder.add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
tv.setText("bla bla");
}
});

return view;
}

关于java - 将 onClickListener 设置为自定义适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591793/

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