0

私が抱えている問題について助けを得ることができるかどうか疑問に思っていますか?私はここで答えを探しました、そして私はいくつかの関連するトピックを見つけましたが、私はまだ本当に苦労しています...

以下に、Spinnerを使用して、ユーザーにLarge、Med、またはSmallのいずれかを選択するように求めていることがわかります。

次に、選択がTextViewに発行されます。

私が今やりたいのは、3つの選択に値を割り当てることです。Large= 6、Med = 4、Small=2です。次に、ユーザーが独自の値を追加するためのEditTextボックスがあります。次に、2つの値を計算に入れて(この例では*と言います)、答えをTextViewに入れます。

ここでの助けは素晴らしいでしょう。

どうもありがとう

String[] items = { "Large", "Med", "Small" };

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.plugfan);
    Factor = (TextView) findViewById(R.id.Factor);

    Spinner spin = (Spinner) findViewById(R.id.spinner);
    spin.setOnItemSelectedListener(this);

    ArrayAdapter aa = new ArrayAdapter(
            this,
            android.R.layout.simple_spinner_item, 
            items);

    aa.setDropDownViewResource(
       android.R.layout.simple_spinner_dropdown_item);
    spin.setAdapter(aa);
}

public void onItemSelected(AdapterView<?> parent, View v, int position,
        long id) {
    Factor.setText(items[position]);
}


public void onNothingSelected(AdapterView<?> parent) {
    Factor.setText("");
}
4

1 に答える 1

0

これを解決する簡単な方法 (最も賢い方法ではありません) は、並列配列を使用することです。

int[] itemValues = { 6, 4, 2 };

メソッド onItmeSelected では、items の代わりに itemValue を使用して setText を設定できます。

よりオブジェクト指向の解決策が必要な場合は、スピナーのモデルとして使用する文字列のリストを返す新しいクラスがより良い解決策になる可能性があります (列挙でも解決される可能性があります)。

于 2012-05-31T15:52:44.590 に答える