Как передать данные из класса фрагмента в действие

#java #android #arrays #android-studio #android-fragments

Вопрос:

Пожалуйста, у меня возникли проблемы с отправкой ArrayList данных на Activity .

Данные представляют собой URL-адрес, сохраненный в ArrayList , но после использования дополнительных пакетов я получаю исключение нулевого указателя. Я также пытаюсь поймать исключение, но все равно данные, которые я получаю с помощью get extra string, равны нулю

 // below is the code i used to pass the data
Bundle extras = new Bundle();
extras.putString("VidUrl",VideoLecturesUrl.get(position));
extras.putString("bookUrl",bookUrl.get(position));                
extras.putString("VidTitle",titleList.get(position));

Intent intent = new Intent(getActivity(),DetailsView.class);
intent.putExtras(extras);
startActivity(intent);


 // below is the receiving activity

 Intent intent = getIntent();
 extras =intent.getExtras();
 if (extras!=null){
      try {
           Video_Url = extras.getString("VidUrl");
           BookUrl = extras.getString("bookUrl");
           Title = extras.getString("VidTitle");
           Toast.makeText(this,Video_Url,Toast.LENGTH_SHORT).show();
           Toast.makeText(this,BookUrl,Toast.LENGTH_SHORT).show();
           Toast.makeText(this,Title,Toast.LENGTH_SHORT).show();
           videotexTitle.setText(Title);
           setTitle(Title);
           setVideo(Video_Url.toString());
       }catch (Exception e){
           e.printStackTrace();
       }
   } else {
       Toast.makeText(this, "the extrass is empty", Toast.LENGTH_SHORT).show();
   }
 

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

1. где именно вы получаете исключение nullpointerexception ?

2. когда я пытаюсь сохранить данные в переменную, чтобы я мог их использовать

3. Даже когда я пытаюсь поджарить данные, чтобы подтвердить, что они все еще пустые пустые строки

Ответ №1:

во фрагменте

 public interface NoticeFragmentListener {
    public void onFragmentSendArray(ArrayType yourArray);
   
}
NoticeFragmentListener listener;
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    // Verify that the host activity implements the callback interface
    try {
        // Instantiate the NoticeFragmentListener so we can send events to the host
        listener = (NoticeFragmentListener) context;
    } catch (ClassCastException e) {
        // The activity doesn't implement the interface, throw exception
       
    }
}
 //metod to send array
 public void SendArray(ArrayType yourArray){listener.onFragmentSendArray(yourArray);}
 

в деактивации

 public class yourActivity extends AppCompatActivity implements YourFragment.NoticeFragmentListener
 

и получить массив

 @Override
public onFragmentSendArray(ArrayType yourArray) {
   
}
 

Ответ №2:

Для простоты используйте для этой цели общие ссылки

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

1. Хорошо, братан, я попробую это