我有一个包含Textview和Edittext的列表视图。 我有一个相同布局的按钮。我希望当我点击该按钮时,某些位置作为列表视图位置3的数据被其他文本更改
我试过这段代码,但它不能正常工作
THID
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.taskstrt, parent, false);
if (convertView == null || convertView.getTag() == null) {
holder = new ViewHolder();
holder.editText = (EditText) convertView.findViewById(R.id.editText1);
holder.textView = (TextView) convertView.findViewById(R.id.textView1);
holder.textView.setText(values.get(position).toString());
holder.editText.setText(arrayList2.get(position).toString());
holder.textView.setId(position);
holder.editText.setId(position);
holder.editText.setEnabled(false);
}
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try{
button.setEnabled(false);
holder.editText.setId(2);
holder.editText.setText("ACCEPT");
}
catch(Exception e)
{
System.out.println("ERROR:");
}
}
});
convertView.setTag(holder);
return convertView;
}
答案 0 :(得分:0)
首先,getView
应该是这样的:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.taskstrt, parent, false);
holder = new ViewHolder();
//..instantiations
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//^don't forget that this up there
//...listeners and what not here
return convertView;
}
此外,我注意到你的按钮不是作为getView的一部分实现的,就像其他持有者视图一样。在哪里?
Button button = (Button) convertView.findViewById(R.id.button1);
如果它是同一布局的一部分,为什么它不是持有者类的一部分?如果按钮未实例化为同一视图层次结构的一部分或根本没有实例化,则该按钮不会响应任何内容。