setOnItemClickListener中的Android ArrayAdapter

时间:2014-03-31 17:19:42

标签: android listview android-arrayadapter

我希望你能帮助我这个新手q :) 我正在使用Android Studio。 我正在尝试在setOnItemClickListener中使用ArrayAdapter但是出错了,我不知道我在这里做错了什么。请帮帮我:)。

这个“listAdapter = new ArrayAdapter(this,R.layout.simplerow,arrayView);”出现此错误:

无法解析构造函数'ArrayAdapter(android.widget.AdapterView.OnItemClickListener,int,java.util.Arraylist)'

----- ------ mycode的

mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View v, int position,
                            long arg3)
    {
        String name = arg0.getItemAtPosition(position).toString();
        //Log.d("name", "name: "+name);
        int j = 0;
        while (j < livsmedelsNameValues.size()) {
            if (livsmedelsNameValues.get(j).toString().equalsIgnoreCase("Foodlist: "+name)) {
                for (int i = 0; i < 62; i++) {
                    test[0] = livsmedelsNameValues.get(i+j);
                    //Log.d("test", "test: " + test[0]);
                    arrayView.add(test[0].toString());
                }
            }
            j++;
        }
        listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, arrayView);


        mainListView.setAdapter( listAdapter );
    }

});

2 个答案:

答案 0 :(得分:1)

你有

listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, arrayView);

this不是有效的上下文。如果在片段

中,请使用ActivityName.thisgetActivity()

答案 1 :(得分:0)

listAdapter = new ArrayAdapter(this, R.layout.simplerow,arrayView);

此处ArrayAdapter的第一个参数必须是上下文。所以 在你的onclick听众&#34;这&#34;表示OnItemClickListener不是Context。使用&#34;这个&#34;如果代码在Activity类中。

现在使用getBaseContext()或getApplicationContext()或你的activity.this或getActivity()而不是&#34;这个&#34;所以使用

listAdapter = new ArrayAdapter(getBaseContext(),

R.layout.simplerow,arrayView);

listAdapter = new ArrayAdapter(getApplicationContext(),R.layout.simplerow, arrayView);