【发布时间】:2017-07-16 18:24:19
【问题描述】:
我已经构建了一个测试应用程序,它在列表视图上显示很少的记录。
现在我想点击一个项目并查看有关 android studio 的调试信息。
我知道我应该创建一个 OnItemClickListener,但我不确定应该将它放在哪里。
我试着把它放在mainactivity上,app可以工作,但是click函数从来没有被调用过,所以出了点问题。
我在 Google 上四处寻找帮助,但我无法全神贯注。
这应该是一个简单的操作(我有一个列表,我单击一个项目)但我无法使其工作。
这是我到目前为止所尝试的:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.LinkedList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listViewDemo);
List list = new LinkedList();
list.add(new Contatto("Antonio","Rossi","1234567890"));
list.add(new Contatto("Pino","Bianchi","2345678901"));
list.add(new Contatto("Peppe","Verdi","3456789012"));
list.add(new Contatto("Leo","Rossi","4567890123"));
list.add(new Contatto("Mario","Blu","5678901234"));
list.add(new Contatto("Aldo","Da Vinci","6789012345"));
CustomAdapter adapter = new CustomAdapter(this, R.layout.rowcustom,list);
listView.setAdapter(adapter);
OnItemClickListener clickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int position, long id) {
Contatto c = (Contatto)adapter.getItem(position);
Log.d(c.getNome(),c.getTelefono());
}
};
listView.setOnItemClickListener(clickListener);
}
}
OnItemClickListener 无法识别,getItem 也无法识别。
android Studio 的自动更正建议我改为“AdapterView.OnItemClickListener”,getItem 没有可识别的选项。
我尝试在类声明中添加“implements OnItemClickListener”,但它也不起作用(报错,名称为红色,android studio 未提供解决方案)。
在某一时刻,我能够删除所有错误,但代码仍然无法正常工作,我不记得我做了什么,我只是在摆弄。
【问题讨论】:
-
搜索“click listview android”在 SO 上显示多个答案,这些都没有帮助吗?如果没有,您应该发布您的代码,以便人们可以查看一些内容,这将有助于回答您的问题,而无需猜测多个潜在问题。
-
@dominicoder 我已经添加了代码和进一步的解释
标签: android adapter onclicklistener