有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么在安卓 ArrayAdapter中找不到我的文本视图?

我编写了以下代码:

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]);

    ..

    }

但是,它在空指针titleTextView上失败。我错过了什么


共 (2) 个答案

  1. # 1 楼答案

    getView()中更改此选项:

    View rowView = inflater.inflate(R.layout.todo_list, parent, false);
    

    致:

    View rowView = inflater.inflate(R.layout.todo_row, parent, false);
    

    为了代码起见,我希望fillData()方法fetchEvents();不会触发UI线程上的网络:)

  2. # 2 楼答案

    试试看:

    View rowView = inflater.inflate(R.layout.todo_list, null);
    

    不要忘记在函数末尾返回rowView