Java 为什么在android ArrayAdapter中找不到我的文本视图?
我编写了以下代码:Java 为什么在android ArrayAdapter中找不到我的文本视图?,java,android,eclipse,Java,Android,Eclipse,我编写了以下代码: TodosOverviewActivity extends ListActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.todo_list); this.getListVie
TodosOverviewActivity extends ListActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.todo_list);
this.getListView().setDividerHeight(2);
registerForContextMenu(getListView());
fillData();
}
private void fillData() {
fetchEvents();
adapter2 = new MySimpleArrayAdapter
(this, nameOfEvent, startDates, descriptions);
setListAdapter(adapter2);
}
public class MySimpleArrayAdapter extends ArrayAdapter<String> {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.todo_list, parent, false);
TextView titleTextView = (TextView) rowView
.findViewById(R.id.todo_row_title);
TextView dateTextView = (TextView) rowView
.findViewById(R.id.todo_row_date);
ImageView imageView = (ImageView) rowView
.findViewById(R.id.todo_row_image);
titleTextView.setText(mTitles[position]);
..
}
ToDoSurveViewActivity扩展了ListActivity{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.todo_列表);
this.getListView().setDividerHeight(2);
registerForContextMenu(getListView());
fillData();
}
私有void fillData(){
fetchEvents();
adapter2=新的MySimpleArraAdapter
(此项、事件名称、开始日期、说明);
setListAdapter(适配器2);
}
公共类MySimpleArrayAdapter扩展了ArrayAdapter{
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)mContext
.getSystemService(上下文布局\充气机\服务);
视图行视图=充气机。充气(R.layout.todo_列表,父项,false);
TextView titleTextView=(TextView)行视图
.findViewById(R.id.todo_row_title);
TextView日期TextView=(TextView)行视图
.findViewById(R.id.todo\u row\u日期);
ImageView ImageView=(ImageView)行视图
.findviewbyd(R.id.todo_row_image);
titleTextView.setText(mTitles[position]);
..
}
但是,它在nullpointer上失败。我缺少什么?尝试:
View rowView = inflater.inflate(R.layout.todo_list, null);
不要忘记在函数末尾返回
rowView
。在getView()中更改此选项:
致:
为了编写代码,我希望使用fillData()
fetchEvents()方法
不会触发UI线程上的联网:)发布添加的待办事项列表的XML。您能提供建议吗?thanksI将转到另一个线程。顺便说一句,我怎么知道查询G-calendar应用程序是否与本地应用程序脱机工作或需要网络?补充一点说明:您正在尝试查找尚未膨胀的视图。哟您已经膨胀了todo_list.xml,并使用它查找id为“todo_row_image”的视图它不是todo_列表的视图层次结构的一部分,因此该调用返回null,因此出现NullPointerException。@Elad除了测试它之外,我不知道如何立即知道它。如果它确实需要联网,那么如果您在UI线程上执行,它将崩溃。@Christopherlis:感谢添加此项…我确信作者引入了一个输入错误,并且他我不知道
View rowView = inflater.inflate(R.layout.todo_list, parent, false);
View rowView = inflater.inflate(R.layout.todo_row, parent, false);