0

onItemSelectedスピナーの機能を少しテストしています。私がやっていることはかなり単純だと思います。アクティビティにテキスト ビューがあり、開始文字列値はありません (つまり、テキスト ビューは空白で始まります)。2 つのスピナーがあり、選択した項目の文字列値を取得するように onItemSelected 関数を設定し、この値をいずれかのスピナーのテキストビューの文字列値に設定します。十分に単純ですが、スピナーから選択されたアイテムを表示することで textView を応答させることはできません。さらに悪いことに、onItemSelected 関数を適切に呼び出すこともできません。私のスピナーとテキストビューのxmlは次のとおりです。

<Spinner
    android:id="@+id/iHaveSpinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/haveTextField"
    android:layout_marginTop="16dp" />

<Spinner
    android:id="@+id/iWantSpinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/iWantView"
    android:layout_centerHorizontal="true" />

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/resultView"
        android:layout_below="@+id/iWantSpinner"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"/>

およびアクティビティの onItemSelected 関数:

public void onItemSelected(AdapterView<?> spinner, View view, int pos, long id) {
    int ID = spinner.getId();
    TextView result = (TextView) findViewById(R.id.resultView);
    switch(ID)
    {
        case (R.id.iHaveSpinner):
            String string1 = spinner.getItemAtPosition(pos).toString();
            result.setText(string1);
            break;
        case (R.id.iWantSpinner):
            String string2 = spinner.getItemAtPosition(pos).toString();
            result.setText(string2);
            break;
    }

}

onItemSelected機能を正しく実行していませんか? 文字列値を編集できない textView のプロパティはありますか? それはかなり簡単に見えますが、行き詰まっているようです

4

1 に答える 1

0

それを見つけた。簡単な修正です。スピナーのコールバック関数を登録するのを忘れていました。スピナーを初期化する/スピナーアイテムを設定するときに、次の2行がありませんでした:

iHaveSpinner.setOnItemSelectedListener(this);
iWantSpinner.setOnItemSelectedListener(this);

ダープ

于 2013-09-12T18:18:40.117 に答える