原因:java.lang.ArrayIndexOutOfBoundsException:长度=1;索引=1

原因:java.lang.ArrayIndexOutOfBoundsException:长度=1;索引=1,java,android,indexoutofrangeexception,Java,Android,Indexoutofrangeexception,我编写了一个带有搜索功能的自定义列表视图。代码如下: public class FaqActivity extends AppCompatActivity { ListView listView; ListViewAdapter adapter; String[] title; int[] icon; ArrayList<faqmodellist> arrayList = new ArrayList<>(); privat

我编写了一个带有搜索功能的自定义列表视图。代码如下:

public class FaqActivity extends AppCompatActivity {
    ListView listView;
    ListViewAdapter adapter;
    String[] title;
    int[] icon;
    ArrayList<faqmodellist> arrayList = new ArrayList<>();

    private final String TAG =  FaqActivity.class.getCanonicalName();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.faq_layout);

        listView = findViewById(R.id.list_item);
        Toolbar toolbar = findViewById(R.id.toolbar);
        toolbar.setNavigationIcon(R.drawable.ic_n_back);
        setSupportActionBar(toolbar);

        title = new String[]{
                "Battery",
                "Cpu",
                "Display",
                "Memory",
                "Sensor"
        };
        icon = new int[]{R.drawable.ic_n_help};

        listView = findViewById(R.id.listView);

        for (int i = 0; i < title.length; i++) {
            faqmodellist model = new faqmodellist(title[i], icon[i]);
            Log.i(TAG, "onCreate: array is" + Arrays.toString(icon));
            //bind all strings in an array
            arrayList.add(model);
        }

        //pass results to listViewAdapter class
        adapter = new ListViewAdapter(this, arrayList);

        //bind the adapter to the listview
        listView.setAdapter(adapter);

    }

    @Override
    public boolean onCreatePanelMenu(int featureId, Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);

        MenuItem myActionMenuItem = menu.findItem(R.id.appSearchBar);
        final SearchView searchView = (SearchView) myActionMenuItem.getActionView();
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String s) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String s) {
                if (TextUtils.isEmpty(s)) {
                    adapter.filter("");
                    listView.clearTextFilter();
                } else {
                    adapter.filter(s);
                }
                return true;
            }
        });
        return true;
    }

}  
当我运行该代码时,会出现以下错误:

原因:java.lang.ArrayIndexOutOfBoundsException:长度=1;索引=1
在com.dell.helpmodule.screen.ui.activity.FaqActivity.onCreate(FaqActivity.java:52)
在android.app.Activity.performCreate(Activity.java:7893)
在android.app.Activity.performCreate(Activity.java:7880)
在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3279)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3443)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)上
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)上执行
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2040)上
位于android.os.Handler.dispatchMessage(Handler.java:107)
在android.os.Looper.loop(Looper.java:224)
在android.app.ActivityThread.main(ActivityThread.java:7520)上
在java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)


图像数组中只有一个元素,数组从位置0开始。我如何修复错误

图标数组中只有1项。。 如果要将相同的图标添加到所有FAQ模型列表项,则应在for循环中替换模型初始化,以:

faqmodellist model = new faqmodellist(title[i], R.drawable.ic_n_help);

不清楚你想做什么。如果假设只有一个图像,那么根本不需要数组。只需在
faqmodellist
构造函数调用中传递
R.drawable.ic\n\u帮助,而不是
图标[i]
。否则,您需要在
图标
数组中再添加四个元素。您确定在这一行“faqmodellist model=new faqmodellist(title[i],icon[i]);”上,标题和图标数组的大小相同吗?是的,我没有看到。。。谢谢你,是的,谢谢你。。。这修正了错误。现在获取另一个错误:
java.lang.UnsupportedOperationException:addView(视图,布局参数)在AdapterView中不受支持
faqmodellist model = new faqmodellist(title[i], R.drawable.ic_n_help);