2

我有一个简单的布局(两个TextViews和一个Spinner),方法中的数组和MainActivity.javawhichonCreate通过适配器填充Spinner.

当我执行应用程序时,我可以单击Spinner但在 android 4.3(API 级别 16)中没有任何反应,并且在 android2.3.3(Api 级别 10)中显示一个空的白行。我不应该至少看到并选择其中一个字符串吗?

主.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,导致. 您使用构造函数并提供与它想要的不同的东西(布局文件资源和来自该布局文件的 id)。相反,您可能想要这个:ArrayAdapterSpinnerArrayAdapterTextView

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