Адаптер становится нулевым, когда мы меняем тему, и приложение вылетает, когда мы используем функцию addTask.Android

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

Сообщение Anonymous »

Код: Выделить всё

package com.example.myapplication;

Код: Выделить всё

import android.content.Context;

Код: Выделить всё

import android.os.Bundle;

Код: Выделить всё

import androidx.annotation.NonNull;

Код: Выделить всё

import androidx.fragment.app.Fragment;

Код: Выделить всё

import androidx.recyclerview.widget.LinearLayoutManager;

Код: Выделить всё

import androidx.recyclerview.widget.RecyclerView;

Код: Выделить всё

import android.view.LayoutInflater;

Код: Выделить всё

import android.view.View;

Код: Выделить всё

import android.view.ViewGroup;

Код: Выделить всё

import android.widget.LinearLayout;

Код: Выделить всё

import android.widget.Toast;

Код: Выделить всё

import java.util.ArrayList;

Код: Выделить всё

public class ToDoFragment extends Fragment {

Код: Выделить всё

Context context;
LinearLayout no_tasks;
RecyclerView tasks_list;
ToDoRecyclerAdapter adapter;
ArrayList arrTask;

public ToDoFragment(){

}

public ToDoFragment(ArrayList arrTask){
this.arrTask = arrTask;
}

@Override
@SuppressWarnings("unchecked")
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_to_do, container, false);

tasks_list = rootView.findViewById(R.id.tasks_list);

no_tasks = rootView.findViewById(R.id.no_tasks);

context = requireActivity().getApplicationContext();

tasks_list.setLayoutManager(new LinearLayoutManager(context));

if (savedInstanceState != null) {
arrTask = (ArrayList) savedInstanceState.getSerializable("tasks");
}

adapter = new ToDoRecyclerAdapter(arrTask);
tasks_list.setAdapter(adapter);

if(tasksPresent()){
no_tasks.setVisibility(View.INVISIBLE);
}else{
no_tasks.setVisibility(View.VISIBLE);
}

return rootView;
}

@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("tasks", arrTask);
}

public void addTask(String task_name, String task_desc, char priority){

arrTask.add(new Task_Model(task_name, task_desc, priority));

if(adapter != null) {
adapter.notifyItemInserted(arrTask.size() - 1);
}

}

public boolean tasksPresent(){

return arrTask.size() > 0;

}
Я ожидаю, что когда я использую функцию addTask после переключения темы с темной на светлую или со светлой на темную, адаптер не должен быть нулевым, как это исправить. Я создаю приложение, которое выглядит как задачи Google, но приложение вылетает, когда я переключаю тему, и адаптер становится нулевым. как это исправить.
Lorem Ipsum — это просто текст-пустышка полиграфической и наборной индустрии. Lorem Ipsum был стандартным текстом-пустышкой в ​​отрасли с 1500-х годов, когда неизвестный типограф взял гранку шрифтов и переделал ее, чтобы сделать книгу образцов шрифтов. Он пережил не только пять столетий, но и скачок в электронную верстку, оставшись по существу неизменным. Он был популяризирован в 1960-х годах с выпуском листов Letraset, содержащих отрывки из Lorem Ipsum, а в последнее время - с программным обеспечением для настольных издательских систем, таким как Aldus PageMaker, включая версии Lorem.

Подробнее здесь: https://stackoverflow.com/questions/783 ... use-addtas
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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