带有按钮和TOAST的Android微调器

时间:2016-10-24 19:52:31

标签: java android button spinner toast

我的代码出现问题,单击按钮时会显示吐司。

public TextView textView,textView2;

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);


}
public void start(View view) {

    Context context = getApplicationContext();
    Toast.makeText(context, String.valueOf(spinner.getSelectedItemPosition()) , Toast.LENGTH_LONG).show();
}

我不知道为什么Toast消息不显示,按下按钮时程序崩溃。

这是我activity_main.xml

中的微调器
<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="73dp"
    android:id="@+id/spinner2"
    android:entries="@array/jednostki"/>
xml中的

按钮

<Button
    android:text="Start"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/spinner"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="71dp"
    android:id="@+id/button"
    android:onClick="start"/>

和带有项目的数组

<string-array name="jednostki">
    <item>Celsjusze</item>
    <item>Farenheity</item>
    <item>Kelwiny</item>
</string-array>

3 个答案:

答案 0 :(得分:2)

看起来好像没有通过ArrayAdapter填充微调器,如文档here所示。因此,除非你使用xml属性android:entries =“@ array / array_name”填充微调器(我们看不到)的方法,然后当你调用spinner.getSelectedItemPosition()时它将抛出一个空指针异常。

答案 1 :(得分:1)

你做错了。只在java类中尝试这个微调器。试试这个例子

future = client.submit(func, *args, pure=False)

现在创建一个按钮并使用toast来显示值

final Spinner spinner=findViewById(R.id.home_spiner);
    final String[] items = new String[]{"AddCustomer","EditCustomer","AssignCustomer","RemoveCustomer"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
    adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    spinner.setAdapter(adapter);

答案 2 :(得分:0)

这是因为你正在使用无人居住的微调器。您需要使用spinner2代替spinner。因此,请将代码更改为以下内容:

// You should move the spinner variable here to 
// make it variable class scope.
Spinner spinner, spinner2;

protected void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   spinner = (Spinner) findViewById(R.id.spinner);
   spinner2 = (Spinner) findViewById(R.id.spinner2);
}

public void start(View view) {
  Toast.makeText(this, String.valueOf(spinner2.getSelectedItemPosition()), 
                 Toast.LENGTH_LONG).show();
}