【发布时间】:2011-01-02 21:03:14
【问题描述】:
在我正在做的应用程序中,我试图让它根据文本做一些不同的事情,所以我有一个代码可以检索我点击的行的文本,然后用 if else 它告诉程序根据代码做不同的事情。
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
int selectionRowID = (int) this.getSelectedItemId();
String selectedFileString = this.directoryEntries.get(selectionRowID);
if (selectedFileString.equals(".")) {
this.browseToSD();
} else if(selectedFileString.equals("..")) {
this.upOneLevel();
} else {
File clickedFile = null;
clickedFile = new File(this.currentDirectory.getAbsolutePath() + this.directoryEntries.get(selectionRowID));
if(clickedFile != null)
this.browseTo(clickedFile);
}
}
但它不起作用,这个:“selectedFileString.equals(".")”总是 TRUE 所以它总是browseToSD,但有时文本是“..”而且大多数时候它是完全不同的东西所以该应用程序没有做它应该做的事情。我试图将代码更改为:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
ListView lv = getListView();
ListAdapter list_adapter = lv.getAdapter();
TextView var_x = (TextView) list_adapter.getView(0,null,null);
if (var_x.equals(".")) {
this.browseToSD();
} else if(var_x.equals("..")) {
this.upOneLevel();
} else {
File clickedFile = null;
clickedFile = new File(this.currentDirectory.getAbsolutePath() + this.directoryEntries.get(selectionRowID));
if(clickedFile != null)
this.browseTo(clickedFile);
}
}
但这也不行,"var_x.equals(".")" 和 "var_x.equals("..")" 总是假的。我真的是使用 Java 和 Android 编程的新手,所以我不知道为什么它不起作用,有什么想法吗?
【问题讨论】: