主要Activity中的Spinner Android适配器

时间:2014-01-30 19:18:14

标签: android spinner adapter

尝试简单地让Spinner进入我的应用程序但是线条(注释掉,应用程序在没有这两行的情况下正常工作)每次我尝试启动Activity时都会给出错误。我在Strings.XML中设置了一个数组,与Spinner一起使用来查看数据。

我的XML包含一个像这样的Spinner:

<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

在Strings.XML中我有我的数组:

 <string-array name="spinner_array">
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
    <item>Jupiter</item>
    <item>Saturn</item>
    <item>Uranus</item>
    <item>Neptune</item>
</string-array>

我的主要活动,评论的2行会导致错误。

public class BusPurchase extends Activity 
{


@Override
protected void onCreate(Bundle savedInstanceState) 
{
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
    R.array.spinner_array, android.R.layout.simple_spinner_item);       

    super.onCreate(savedInstanceState);

       //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    //spinner.setAdapter(adapter);  
    setContentView(R.layout.activity_bus_purchase);         
}

Log Cat显示: http://chopapp.com/#cbz5r823

2 个答案:

答案 0 :(得分:1)

在从xml布局访问视图之前调用setContentView

protected void onCreate(Bundle savedInstanceState) 
{
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_bus_purchase); // set layout here  
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
   //..your code here

}

因为您在设置Activity

的布局之前尝试访问视图

答案 1 :(得分:0)

您在对spinner(R.id.spinner)的引用上获得了Null指针,因为您在扩充布局之前尝试引用布局中的项目。尝试调用setContentView(R.layout.activity_bus_purchase);在你的onCreate()方法中的第一件事,看看是否没有解决它。