0

私はAndroidが初めてです。さまざまな文字列配列の条件付きアダプター (文字列変数に依存) を作成しようとしました。

    TextView textPrompt;
    textPrompt = (TextView)findViewById(R.id.textprompt);
    final String acType = i.getStringExtra("type");
    textPrompt.setText(acType);
    if (acType == "400G"){
    spinnerSurface = (Spinner) findViewById(R.id.spinnerSurface);
    ArrayAdapter<CharSequence> adapterSurface = ArrayAdapter.createFromResource(
            this, R.array.surface_option_1, android.R.layout.simple_spinner_item);
    adapterSurface.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerSurface.setAdapter(adapterSurface);

    }
    else if (acType != "400G"){
        spinnerSurface = (Spinner) findViewById(R.id.spinnerSurface);
        ArrayAdapter<CharSequence> adapterSurface = ArrayAdapter.createFromResource(
                this, R.array.surface_option, android.R.layout.simple_spinner_item);
        adapterSurface.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnerSurface.setAdapter(adapterSurface);

    }

    spinnerSurface.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { 
        public void onItemSelected(AdapterView<?> parent, View v, 
                int position, long id) { 
            TextView tx = (TextView)v; 
            Log.i("\n\nid",String.valueOf(tx.getText()));
        } 
        public void onNothingSelected(AdapterView<?> arg0) { 
            // TODO Auto-generated method stub 
        } 
    });

textPrompt を使用して acType の値を確認します。acType が「400G」であっても「400G」でなくても、プログラムは acType を「400G」ではないと解釈するため、R.array.surface_option1 の代わりに R.array.surface_option が使用されます。助けてください。

4

1 に答える 1

0

それは実際には Android ではなく Java のString質問です==equals()

if (acType != null && acType.equals("400G")){
    ...
}
else {
    ...
}

Strings はオブジェクトであるため、参照を比較します。これ==は、文字列が等しい場合に異なる可能性があります。

于 2012-05-23T09:15:10.430 に答える