1

バンドルからデータを取得するときに「if」コントロールが機能しない場合は、助けてください。データに応じてテキストビューを変更する必要があるため、「if」ブロックでバンドルのデータを比較する必要があります。

result = getIntent().getExtras();
String get = result.getString("secilen");

if(number == 0) {
    imgView.setImageResource( R.drawable.tas );

    //txtV.setText(get);

    if (get == "A"){ // if even "A" come never read if block
        txtV.setText("...");
    }

    if (get == "B"){
        txtV.setText("...");
    }

    if (get == "C") {
        txtV.setText("...");
    }
}
4

4 に答える 4

2

次のように文字列を比較するには、 ==の代わりにequalsを使用します。

if (get.equals("A")){ 
    txtV.setText("...");
}

if (get.equals("B")){
    txtV.setText("...");
}

if (get.equals("C")) {
    txtV.setText("...");
}
于 2012-07-17T13:18:14.707 に答える
2

使用できます

if (get.equals("A")) { //my code ...
于 2012-07-17T13:18:54.040 に答える
0

を介して文字列を比較することはできません==。これは、オブジェクトのIDのみをチェックするためですが、同じコンテンツ(たとえばA)を持つ2つの文字列は別々のオブジェクトである可能性があります。equals()代わりに使用してください:

if ("A".equals(get)) {
        txtV.setText("...");
}

比較の順序が異なることに注意してください。これによりNullPointerExceptions、ifgetをnullにする必要がなくなります。

これについての良い説明があります。

于 2012-07-17T13:19:10.870 に答える
-1
result = getIntent().getExtras();
if(result!=null){
    String get = result.getString("secilen");
    if(number == 0){
    imgView.setImageResource( R.drawable.tas );


    if (get.equals("A"))
        txtV.setText("...");
    }

    else if (get.equals("B")){
        txtV.setText("...");
    }

    else if (get.equals("C")) {
        txtV.setText("...");
    }
  }
}
于 2012-07-17T13:25:09.230 に答える