2011-01-02 5 views
1

내가하는 응용 프로그램에서는 텍스트에 따라 다른 작업을 수행하려고하므로 행의 텍스트를 검색하는 코드가 있다고 가정합니다. 내가 클릭 한 다음 다른 사람과 함께 코드에 따라 뭔가 다른 일을하는 프로그램을 알려줍니다.변수에 목록 뷰 행의 텍스트 넣기

@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 (". ")"항상 browseToSD 않습니다,하지만 때로는 텍스트가 ".."와 시간의 대부분은 그래서 항상 TRUE입니다 완전히 다른 앱이므로 앱이하는 일을하지 않습니다. "var_x.equals를 (". ")"와 "var_x.equals (".. ")"항상 거짓,

@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); 
     } 
} 

을하지만이 중 하나가 작동하지 않습니다 나는이에 코드를 변경했습니다. 나는 자바와 안드로이드로 프로그래밍하기가 정말 쉽지 않아서 왜 작동하지 않는지 전혀 모른다.

답변

0

"selectedFileString.equals는 (". ")"그것은

String selectedFileString = this.directoryEntries.get(selectionRowID) 

이 제대로 잘 작동하지 않는 것을 의미 할 수 항상

TRUE입니다. 이것이 검토해야 할 첫 번째 사항입니다.

"var_x.equals (". ")"와 "var_x.equals는 (".. ")"항상 정상

false입니다. var_x은 위젯 (TextView)이며 문자열이 아닙니다. 그래서 평등하지 않을 것입니다. 그 selectedFileString.equals와 (

TextView var_x = (TextView) list_adapter.getView(position,null,null); 
+0

내가 var_x.getText()로 변경 toString()를 등호 (".") 지금은 동일합니다 :

var_x.getText().toString().equals(".") 

을 그리고 이렇게이보십시오.. "."), 그것은 항상 TRUE입니다. 두 번째 경우는 절대로 평가되지 않으며 else ... =/실제로 작동하지 않는 이유를 모르겠습니다 ... "var_x.getText() –

+0

나는 내 대답을 편집했다 ... 당신은 항상 첫 번째 행을 얻고있는 것 같아요 (당신은 getView()을하고 있습니다.)() .toString(). equals (".") "and"selectedFileString.equals 0, null, null)). – Cristian

+0

좋아요! 이제 완벽하게 작동합니다. 이제 호기심 때문에 "String selectedFileString = this.directoryEntries.get (selectionRowID)"가 제대로 작동하지 않는 이유를 다른 사람이나 알고 있습니까? –