在所有社区中,您好,我有2button
和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
with(例如)5的文本,我该怎么做?如果我投入onCLick
方法
holder.result.setText("My text")
设置最后一个textview的文本,而不是所选行项目的对应textview的文本(我禁用了对listview的单击):
@Override
public boolean isEnabled(int position) {
return false;
}
我的问题有什么解决办法吗?
您应该将代码getView
放在适配器内部的方法中,并记住使用对当前Button
/的引用,TextVeiw
以便每个Button
都对应于该特定对象。TextView
PS我发现与您的代码的东西检查出来:
@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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句