2015-01-19 2 views
0

Я хочу передать идентификатор R.drawable в другое действие через намерение. Я использую переключатель, чтобы найти правильный drawable, а затем используя putExtra(), чтобы передать его. Но когда я называю getIntExtra, он говорит, что передал строку. Есть ли проблема с этим кодом или это где-то в другом месте?Почему это putExtra передает строку вместо int?

int i = getExerciseId(((TextView)getView().findViewById(R.id.fragTextView)).getText().toString()); 
      Intent intent = new Intent(v.getContext(), LevelActivity.class); 
      intent.putExtra("exerciseId", ((TextView)getView().findViewById(R.id.fragTextView)).getText().toString()); 
      intent.putExtra("image", i); 
      startActivity(intent); 
     } 

     public int getExerciseId(String s) { 
      int i = -1; 
      switch (s) { 
       case "Weather": 
        i = R.drawable.weather; 
       break; 
       case "Weekend": 
        i = R.drawable.weekend; 
       break; 
       case "Hobbies": 
        i = R.drawable.hobbies; 
       break; 
       case "Music": 
        i = R.drawable.music; 
       break; 
       case "Family": 
        i = R.drawable.family; 
      } 
      return i; 

редактировать: нет ошибок журнала, я получаю красная линия сообщение в коде, говоря:

getIntExtra(String, int) in Intent cannot be applied to (String) 

в этой строке кода:

intent.getIntExtra("image"); 
+0

Пожалуйста, разместите сообщение об ошибке (выход журнала) и код, в котором вы извлекаете дополнительную информацию. –

ответ

2

Это не говорит вам, что вы получаете строку, но вы вызываете getIntExtra метод с недостаточными параметрами. Позвоните по телефону

getIntExtra("image", 0); // or whichever default value you want to use. 
+0

Да, теперь я вижу, спасибо. – amh

1

для получения INT значение

//wirte name=imge and defaultValue =-1 
//and have a check if value for image is -1 then no value was received 

intent.getIntExtra(name, defaultValue); 
3
getIntExtra(String name, int defaultValue) 

Вы должны указать значение по умолчанию вызову метода. Если ключ не найден, возвращается значение по умолчанию.

http://developer.android.com/reference/android/content/Intent.html#getIntExtra(java.lang.String,%20int)

+0

О, спасибо. Я думал, что проверил руководство раньше, но это было для getStringExtra. – amh

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