2

私は単純なレイアウト( twoTextViewsと one Spinner)、配列とメソッドのMainActivity.javawhich を持っています。onCreateアダプターを介してSpinner.

アプリを実行するとクリックできますSpinnerが、android 4.3(API レベル 16) では何も起こらず、android2.3.3(Api レベル 10) では空の白い行が表示されます。少なくとも文字列の 1 つを表示して選択するべきではありませんか?

main.xml :

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/question"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:text="@string/question" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/question"
        android:text="@string/one" />

   <Spinner
       android:id="@+id/nationalities_spinner"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/question"
       android:layout_toRightOf="@+id/textView1"
       android:entries="@array/nationalities_array"
       android:tag="@string/select_string" />

</RelativeLayout>

の配列Spinner:

<string-array name="nationalities_array">
    <item>Italian</item>
    <item>German</item>
    <item>British</item>
    <item>Dutch</item>
</string-array>

そしてMainActivity.java

    public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  
        Spinner nationalities_spinner  = (Spinner) findViewById(R.id.nationalities_spinner);
        ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this, R.array.nationalities_array, android.R.layout.simple_spinner_item); 
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        nationalities_spinner.setAdapter(adapter);
    }

    public void onResume(){
        super.onResume();

    } 

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
4

1 に答える 1

1

Spinnerに間違ったコンストラクターを使用するとArrayAdapter、 が空になるArrayAdapterため、に何かが表示されませんSpinnerこのArrayAdapterコンストラクターを使用して、必要なものとは異なるもの (レイアウト ファイル リソースとTextViewそのレイアウト ファイルの id) を提供します。代わりに、おそらくこれが必要です:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.nationalities_array, android.R.layout.simple_spinner_item);
于 2012-10-07T10:52:42.503 に答える