AdapterView.OnItemClickListener.onItemClick吞下IndexOutOfBoundsException

时间:2015-03-26 09:50:09

标签: android android-listview indexoutofboundsexception android-adapter

我有一个带有以下OnItemClickListener的listView:

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) {
        throw new IllegalArgumentException();
    }
});

这将按预期抛出异常。但是,当我用IllegalArgumentException替换IndexOutOfBoundsException时,不会按预期抛出异常。

我查看了源代码,但找不到IndexOutOfBoundsException被抓住的位置。

为什么我能看到这种奇怪的行为?这种行为是否记录在任何地方?

2 个答案:

答案 0 :(得分:0)

在首先检查异常之前,先验证所有import语句。 它也可以写成

    mListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

        }
    });

这里我们需要导入AdapterView。即

import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;

这么容易..

答案 1 :(得分:-1)

您的代码应该是这样的

mListView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                // getting values from selected ListItem
                String name= ((TextView) view.findViewById(R.id.textview)).getText().toString();


            }
        });