我的代码出现问题,单击按钮时会显示吐司。
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>
答案 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();
}