方法不从spinner项返回string的值,返回null,android

时间:2018-03-15 18:07:53

标签: android android-spinner

以下代码返回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;
}

1 个答案:

答案 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变量会更新   在使用这些变量之前要小心,这样的变量可能是   空。