我希望你能帮助我这个新手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 );
}
});
答案 0 :(得分:1)
你有
listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, arrayView);
this
不是有效的上下文。如果在片段
ActivityName.this
或getActivity()
答案 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);