我有一个可能很简单的问题,但我不太了解我在做什么错。我有一个列表视图,该列表视图作为文件浏览器加载。当我单击任何项目时,这应该发生。
protected void onListItemClick(ListView l, View v, int position, long id) {
File file = new File(path.get(position));
if (file.isDirectory())
{
if(file.canRead())
getDir(path.get(position));
else
{
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("[" + file.getName() + "] folder can't be read!")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
else
{
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("[" + file.getName() + "]")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
但是,当我单击项目时,什么也没有发生。我什至检查了logcat,以查看单击时是否有任何活动,但绝对没有。我需要以某种方式将此监听器链接到我的特定列表视图吗?另外,如果我需要发布更多信息,请告诉我。非常感谢您的帮助!
新问题
AlertDialog show = new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("[" + file.getName() + "] folder can't be read!")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
else
{
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("[" + file.getName() + "]")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
在这两种情况下,我都会收到一个错误消息,即alertDialog未定义。
最佳答案
是的,您需要向ListView
注册OnItemClickListener
例如。像这样:
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list,
View view, int position, long id) {
// Your code goes here
}
});
关于android - ListView OnItemClickListener不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14382082/