我有一个问题,可能很简单,但我不太明白我做错了什么。我有一个listview,它作为文件浏览器加载。这是当我点击任何一个项目时应该发生的事情。
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未定义。
答案 0 :(得分:1)
是的,您需要使用ListView
OnItemClickListener
E.g。像这样:
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list,
View view, int position, long id) {
// Your code goes here
}
});
答案 1 :(得分:1)
将上下文从“this”更改为“YourActivityName.this”
例如 新的AlertDialog.Builder(YourActivityName.this);