我有一个可能很简单的问题,但我不太了解我在做什么错。我有一个列表视图,该列表视图作为文件浏览器加载。当我单击任何项​​目时,这应该发生。

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/

10-11 21:33