2015-05-08 5 views
-2

A новичок вопрос. Я пришел с рубинового фона и хочу знать, как решить эту проблему.java возвращаемое значение всегда возвращает null

Всякий раз, когда я пытаюсь вернуть значение, которое инициализируется внутри функции, оно печатает null или nothing. Может ли кто-нибудь сказать мне, как вернуть стоимость?

Это то, что я пробовал.

firstFunction(){ 
    String id = setSpinner(); 
} 


    public String setSpinner(){ 
      ArrayAdapter<String> adapter; 
      final String[] id = new String[1]; 
      adapter = new ArrayAdapter<String>(user_activity.this,android.R.layout.simple_dropdown_item_1line,brand_list); 
      spinner.setAdapter(adapter); 
      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
        id[0] = _ids.get(i); 
    //Toast.makeText(getBaseContext(), id[0] + ":" + spinner.getSelectedItem().toString(), Toast.LENGTH_SHORT).show(); // Prints correct value 
       } 

       @Override 
       public void onNothingSelected(AdapterView<?> adapterView) { 

       } 
      }); 
      Toast.makeText(getBaseContext(), id[0].toString() , Toast.LENGTH_SHORT).show(); // Always prints null 
      return id[0]; // returns empty string 
     } 
+0

Что такое _ids. Правильно ли оно заполнено? – Knossos

+0

Кажется, вы не можете присвоить значение 'id [0]' и, следовательно, оно всегда возвращает null. Вы можете отлаживать код один раз? –

+0

перед возвратом .... попробуйте распечатать значение id [0] – sparsh610

ответ

1

Ты запутался когда код выполняется.

id[0] присваивается только при выборе элемента прядильника. Все, что вы делаете здесь, - это настройка счетчика, но на данный момент нет взаимодействия с пользователем. Поэтому вы не можете получить результат, так как никто не был выбран.

Если вы хотите, чтобы вернуть первое значение, вы можете сделать это внеOnItemSelectedListener, например, так:

return adapter.getItem(0);

Независимо код в вашем Listener, по существу, бессмысленно.

+0

в 'setOnItemSelectedListener' я заполняю элемент spinner массивом' brand_list'. И я пытаюсь получить 'id' в позиции' i' из массива '_ids'. И хочет вернуть его к другой функции.] – Aparichith

+0

Согласен с идентификатором @ 323go [0] будет получать значение при выборе элемента. – sparsh610

+0

@SparshKhandelwal @ 323go Уже есть значения, которые заполняются элементами-spinner, используя 'android.R.layout.simple_dropdown_item_1line' и' brand_list'. Когда пользователь выбирает некоторые элементы из элементов spinner, я пытаюсь получить массив «value» 'i'from' _ids' на основе позиции 'i'. – Aparichith

Смежные вопросы