0

ここでは 2 つのスピナーが追加されています。特定の item1 と item2 を選択すると、特定の画像を表示する必要があります。たとえば、「Gujarat」と「Gandhinagr」が選択されている場合、画像 abc.png を表示する必要があります。助けてください。

    public class MainActivity extends Activity implements OnItemSelectedListener {

private String[] INDIAN_STATE = { "Gujarat", "Andra Pradesh",
        "Arunachal Pradesh", "Assam", "Bihar", "Chhattisgarh", "Goa",
        "Haryana", "Himachal Pradesh", "Jammu and Kashmir", "Jharkhand",
        "Karnataka", "Kerala", "Madya Pradesh", "Maharashtra", "Manipur",
        "Meghalaya", "Mizoram", "Nagaland", "Orissa", "Punjab",
        "Rajasthan", "Sikkim", "Tamil Nadu", "Tripura", "Uttaranchal",
        "Uttar Pradesh", "West Bengal" };

private String[] INDIAN_STATE_CAPITAL = { "Gandhinagar", "Hyderabad",
        "Itangar", "Dispur", "Patna", "Raipur", "Panaji", "Chandigarh",
        "Shimla", "Srinagar and Jammu", "Ranchi", "Bangalore",
        "Thiruvananthapuram", "Bhopal", "Mumbai", "Imphal", "Shillong",
        "Aizawi", "Kohima", "Bhubaneshwar", "Chandigarh", "Jaipur",
        "Gangtok", "Chennai", "Agartala", "Dehradun", "Lucknow", "Kolkata"       };

Spinner spinnerState, spinnerCapital;
TextView tvState, tvCapital;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    System.out.println(INDIAN_STATE.length);
    System.out.println(INDIAN_STATE_CAPITAL.length);

    tvState = (TextView) findViewById(R.id.mystate);
    tvCapital = (TextView) findViewById(R.id.mystatescapital);

    spinnerState = (Spinner) findViewById(R.id.spinnerstate);
    spinnerCapital = (Spinner) findViewById(R.id.spinnercapital);

    ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, INDIAN_STATE);
    adapter_state
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerState.setAdapter(adapter_state);

    ArrayAdapter<String> adapter_state_capital = new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_item,
            INDIAN_STATE_CAPITAL);
    adapter_state_capital
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerCapital.setAdapter(adapter_state_capital);

    spinnerState.setOnItemSelectedListener(this);
    spinnerCapital.setOnItemSelectedListener(this);
}

public void onItemSelected(AdapterView<?> parent, View view, int position,
        long id) {

    spinnerState.setSelection(position);
    spinnerCapital.setSelection(position);

    String myState = (String) spinnerState.getSelectedItem();
    String myStatesCapital = (String) spinnerCapital.getSelectedItem();

    tvState.setText("My State is " + myState);
    tvCapital.setText("My State is " + myState + ".And its Capital is "
            + myStatesCapital);

}

public void onNothingSelected(AdapterView<?> parent) {

}

}

4

1 に答える 1

0

ドキュメントを見てみましょう: http://developer.android.com/guide/topics/ui/controls/spinner.html

州ごとに複数の首都が存在する可能性があると仮定します。そうでない場合は、資本スピナーはまったく必要ありません。

まず、上記のスピナーのドキュメントに従って、削除します

spinnerState.setSelection(position);
spinnerCapital.setSelection(position);

String myState = (String) spinnerState.getSelectedItem();
String myStatesCapital = (String) spinnerCapital.getSelectedItem();

そしてただ使う

parent.getItemAtPosition(pos)

次に、写真を表示するために使用するメソッドへの呼び出しを追加します。そのための擬似コードを次に示します

private Drawable getSelectedImage(String state, String capital){

    // Compare your selections here
    if(state.equals("Foo"){
        if(capital.equals("Bar"){
              //get and set appropriate image here
              int imageResource = R.drawable.foo_bar;
              return getResources().getDrawable(imageResource);
        }
    }
}

画像ファイルが適切なドローアブル フォルダーに追加されていることを確認します。

于 2013-04-23T20:26:41.367 に答える