0

我正确设置了 OnItemClickListener,但是当我单击其中一个列表项时它会崩溃。我想知道它是否可以完成

这是代码

更新:

 public class Inbox extends ListActivity {

    private static String[] numbers;
    private static String[] content;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.inbox_list);
        DictionaryOpenHelper helper = new DictionaryOpenHelper(this,"MyTable", null, 2);
        SQLiteDatabase database  = helper.getReadableDatabase();
        Cursor c = database.rawQuery("SELECT * FROM MyTable", null);

        numbers = new String[c.getCount()];     
        content = new String[c.getCount()];
            c.moveToFirst();
            int count = 0;
            do{
                numbers[count] = c.getString(c.getColumnIndex("PhoneNumber"));
                content[count] = c.getString(c.getColumnIndex("Message"));
                count++;
            }
            while(c.moveToNext());

            database.close();
        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                numbers));
    this.getListView().setOnItemClickListener(listener);
        }
    private OnItemClickListener listener = new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Intent intent = new Intent(Inbox.this, ContDisplay.class);
            intent.putExtra("number", numbers[arg2]);
            startActivity(intent);
        }
    };
}

Oncreate 内部:

this.getListView().setOnItemClickListener(listener);
4

1 回答 1

0

arg0.getAdapter().getItemId(arg2)应该替换为arg2,因为 arg2 是单击列表元素的位置。我认为你得到 ArrayIndexOutOfBoundsException 是因为你试图不是通过元素的位置,而是通过元素的 id 来获取数组的元素!元素的 id 可以是例如 100203102031230。

于 2013-07-25T13:31:29.527 回答