我正在尝试在listView的自定义行视图中设置textView,但是应用程序崩溃返回空指针异常
TextView txtrow = (TextView) getListView().getChildAt(i).findViewById(R.id.text11);
txtrow.setText("text");
但是当我把它放在setOnClickListener下时它可以工作
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView txtrow = (TextView) getListView().getChildAt(i).findViewById(R.id.text11);
txtrow.setText("text");
}
});
答案 0 :(得分:0)
您应该在ListView的适配器中执行此操作。无论您使用后面的数据,您的适配器都应该包含您想要的文本,以便在getView()
中实际创建行视图时可以在相应的TextView上进行设置。
重要的是要注意getChildAt(index)
从ListView的当前孩子返回给定索引的孩子。换句话说,getChildAt(0)
不必然会在位置0处为您提供列表项。用户可能已滚动列表,以便现在显示位置10到15的数据(例如) ,在这种情况下,getChildAt(0)
为您提供位置10的视图,而不是位置0。
答案 1 :(得分:0)
To set text in custom row in listview
Please follow the following points
1. custom arrayadapter by extending Arrayadpater (for simple)
2. and overwrite getview as following
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label);
textView.setText(values[position]);
return rowView;
}
3. and set the adapter to the listview
And for more detial please refer this site
[http://www.vogella.com/tutorials/AndroidListView/article.html][1]