以下代码返回null
值。谁能告诉我为什么?我希望使用返回的值将其发送到intent中的另一个活动,在此代码所属的类中声明Choice
字符串:
public String SetupBreakfastSpinner()
{
Choice = "";
SpinnerSelector= ArrayAdapter.createFromResource(HomeActivity.this, R.array.breakfastArray, android.R.layout.simple_spinner_item);
SpinnerSelector.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Breakfast.setAdapter(SpinnerSelector);
Breakfast.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Choice= parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
return Choice;
}
答案 0 :(得分:0)
在方法SetupBreakfastSpinner
中,您正在将Choice
初始化为空字符串。当您调用此方法时,您正确地将适配器设置为spinner,但立即返回仍为空的Choice
。
由于您必须将Choice
值发送给其他活动,因此您有两种选择:
方法1 :当用户在微调器中选择一个项目时,会调用onItemSelected
回调:
void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Choice= parent.getItemAtPosition(position).toString();
//start your activity here, pass Choice value in the Intent
}
方法2 :假设你有一些按钮,当你点击它开始活动时,在onClick按钮你可以开始活动
void onClick(View v){
//Start activity, pass Choice in Intent
}
请记住,例如,某些事件发生变化的值 当用户选择值时,此
Choice
变量会更新 在使用这些变量之前要小心,这样的变量可能是 空。