2011-01-02 7 views
1

私がやっているアプリケーションでは、テキストに応じて何か違うようにしようとしているので、行のテキストを取得するコードがあります私はクリックしてから、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(」。「)」、それは常にbrowseToSDを行いますので、常にTRUEですが、時にはテキストは「..」であり、それはだ倍の大半何かが完全に異なっているので、アプリはそれがやろうとしていることをしません。 "var_x.equalsを("。 ")" と "var_x.equals(" .. ")" は常にfalseです、

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

をしかし、これはどちらか動作しません:私はこれにコードを変更しようとしました。私はJavaとAndroidでプログラミングするのが本当に新しいので、なぜそれが動作しないのか、何か考えがないのですか?

答えて

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なので、2番目のelseは評価されず、else = ... /実際には動作しない理由を知りません... "var_x.getText() –

+0

私は私の答えを編集しました...それはあなたが常に最初の行を取得しているようです(getViewをやっていると思うのですが).toString()。equals( "。") "と" selectedFileString.equals( "。" 0、null、null))。 – Cristian

+0

素晴らしい!今は完璧に動作します。今、好奇心のために、あなたや他の誰かが "String selectedFileString = this.directoryEntries.get(selectionRowID)"が正しく動作しなかった理由を知っていますか? –

関連する問題