Получить данные из фрагмента в исключение нулевого указателя основного действияAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Получить данные из фрагмента в исключение нулевого указателя основного действия

Сообщение Anonymous »


У меня есть проблема, которую я не могу найти нигде для решения: я изучаю студию Android в udemy, и то, как профессор выполняет фрагментарные упражнения, на меня не действует. Он создает 2 фрагмента: один для списка и один для подробностей. Проблема в том, что когда я пытаюсь прочитать компоненты из основной деятельности для запуска моих задач, возникает исключение NullPointerException. Вот мой код:

Деталифрагмент

публичный класс DetailFrag расширяет фрагмент {

ImageView imageView; TextView tvName, tvTel; частная статическая конечная строка ARG_PARAM1 = «param1»; частная статическая окончательная строка ARG_PARAM2 = «param2»; частная строка mParam1; частная строка mParam2; общественный DetailFrag() { // Требуемый пустой публичный конструктор } public static DetailFrag newInstance(String param1, String param2) { Фрагмент DetailFrag = новый DetailFrag(); Bundle args = новый Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); фрагмент.setArguments(args); вернуть фрагмент; } @Override public void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); если (getArguments() != ноль) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView (инфлятор LayoutInflater, контейнер ViewGroup, Пакет saveInstanceState) { // Раздуваем макет для этого фрагмента return inflater.inflate(R.layout.fragment_detail, контейнер, false); }

СписокФрагмент

публичный класс ListFrag расширяет Fragment {

RecyclerView recyclerView; RecyclerView.Adapter myAdapter; RecyclerView.LayoutManagerLayoutManager; Посмотреть вид; общественный ListFrag() { } @Override public View onCreateView (инфлятор LayoutInflater, контейнер ViewGroup, Пакет saveInstanceState) { представление = inflater.inflate(R.layout.fragment_list, контейнер, false); обратный вид; } @Override public void onActivityCreated(@Nullable Bundle saveInstanceState) { super.onActivityCreated(savedInstanceState); recyclerView = view.findViewById(R.id.list); recyclerView.setHasFixedSize(истина); LayoutManager = новый LinearLayoutManager(this.getActivity()); recyclerView.setLayoutManager(layoutManager); myAdapter = новый PersonAdapter(this.getActivity(), ApplicationClass.people); recyclerView.setAdapter(myAdapter); }

Основная активность публичный класс MainActivity расширяет AppCompatActivity реализует PersonAdapter.ItemClicked {

TextView tvName,tvTel; EditText etName, etTel; Кнопка btnAdd; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); tvName = findViewById(R.id.tvName) tvTel = findViewById(R.id.tvTel); etName = findViewById(R.id.etName); etTel = findViewById(R.id.etTel); btnAdd = findViewById(R.id.btnAdd); btnAdd.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { } }); } @Override public void onItemClicked (int index) { tvName.setText(ApplicationClass.people.get(index).getName()); tvTel.setText(ApplicationClass.people.get(index).getTelNr()); }

Исключение:

E/AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: main Процесс: com.example.recyclerfragments, PID: 31089. java.lang.NullPointerException: попытка вызвать виртуальный метод «void android.widget.TextView.setText(java.lang.CharSequence)» по ссылке на нулевой объект в com.example.recyclerfragments.MainActivity.onItemClicked(MainActivity.java:43) в com.example.recyclerfragments.PersonAdapter$ViewHolder$1.onClick(PersonAdapter.java:46) в android.view.View.performClick(View.java:7575) в android.view.View.performClickInternal(View.java:7548) на android.view.View.access$3600(View.java:837) в android.view.View$PerformClick.run(View.java:28933) в android.os.Handler.handleCallback(Handler.java:938) в android.os.Handler.dispatchMessage(Handler.java:99) в android.os.Looper.loop(Looper.java:236) Основной XML-код действия:
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»