Получение нулевых значений при передаче данных с намерением из адаптера в действие

#java #android

#java #Android

Вопрос:

Вероятно, это очень простой вопрос, но я не смог найти ответа.

Мне нужно передать данные из RecyclerView, но когда я проверяю их в соответствующем действии, данные равны нулю.

 mvHolder.barcode.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent s = new Intent(context, SummaryActivity.class);
        s.putExtra("SUMMARY",sp.getDATA().get(i).getId_summary()); // data is not null
        context.startActivity(s);
    }
});
  

и вот как я пытаюсь этого достичь :

 Bundle extras = getIntent().getExtras();
if (extras != null) {
    strBarcode = extras.getString("SUMMARY");
    // and get whatever type user account id is
}
  

но когда я это отлаживаю, оказывается, что strBarcode равен null. Я не знаю, в чем проблема, я думаю, мой код тоже должен работать. Пожалуйста, помогите мне

Комментарии:

1. Какое значение вы получили в sp.getData().get(i).getId_summary()

2. это идентификатор для каждой строки в recyclerview, он с сервера @ShantoGeorge

3. sp.getDATA().get(i).getId_summary() должно быть string. Если это целое число, то getString() возвращает null

4. Вам придется использовать интерфейс, если вы хотите передать данные в соответствующее действие!

5. Вы пытались передать какие-то данные напрямую: s.putExtra("SUMMARY", "Some string"); ?

Ответ №1:

 Intent data = getIntent();
if (data != null) {
    strBarcode = data.getStringExtra("SUMMARY");
    // and get whatever type user account id is
}
  

Комментарии:

1. @Iganov Не могли бы вы, пожалуйста, обновить вопрос, предпочтительно с помощью StackTrace?

Ответ №2:

 Intent data = getIntent();
if (data != null) {
   int strBarcode = data.getIntExtra("SUMMARY");
}
  

Пожалуйста, попробуйте это

Ответ №3:

Проверьте, getIntent().hasExtra("SUMMARY") returns true . Если это произойдет, убедитесь, что это sp.getDATA().get(i).getId_summary() возвращает String .

Там может быть лишнее, но вы пытаетесь получить в виде строки, и оно может иметь другой тип.