有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在todolist中保留上一个任务?

以前我创建了一个票证,因为我有这个错误

Attempt to invoke interface method 'int java.util.List.size()' on a null object reference?

当我想关闭手机中的所有应用程序以减少内存时,我出现了这个错误

我在修改之前向您展示了我的所有文件

列表。java

public class List extends AppCompatActivity implements ItemDialog.ItemDialogListener, AdapterView.OnItemClickListener {
    private ListView listView ;

    private Button addBtn ;
    private ArrayList<EltList> eltList ;
    private ArrayAdapter<EltList> adapter ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);

        addBtn = findViewById(R.id.addTask);
        listView = findViewById(R.id.listView);

        eltList = FileHelper.readData(this);
        adapter = new TextAdapter(this,eltList);

        listView.setAdapter(adapter);

        addBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openDialog();
            }
        });
        listView.setOnItemClickListener(this);

    }

    public void openDialog(){
        ItemDialog itemDialog = new ItemDialog();
        itemDialog.show(getSupportFragmentManager(),"example dialog");
    }

    @Override
    public void applyText(String newTask, String newDateTimeTask) {
        EltList elt = new EltList(newTask,newDateTimeTask);
        adapter.add(elt);

        FileHelper.writeData(eltList,List.this);
        Toast.makeText(List.this,"Item added",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        eltList.remove(position);
        adapter.notifyDataSetChanged();
        FileHelper.writeData(eltList,this);
        Toast.makeText(this,"Delete",Toast.LENGTH_SHORT).show();
    }
}

文本适配器。java

public class TextAdapter extends ArrayAdapter<EltList> {

    public TextAdapter(Context context, java.util.List<EltList> eltList){
        super(context,0,eltList);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){

        if(convertView == null){
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.item,parent,false);
        }

        ItemList itemList = (ItemList) convertView.getTag();
        if(itemList == null){
            itemList = new ItemList();
            itemList.taskName = convertView.findViewById(R.id.task);
            itemList.taskDate = convertView.findViewById(R.id.task_date) ;

            convertView.setTag(itemList);
        }

        EltList eltList = getItem(position);
        itemList.taskName.setText(eltList.getTaskName());
        itemList.taskDate.setText(eltList.getTaskDate());

        return convertView ;

    }

    private class ItemList{
        public TextView taskName ;
        public TextView taskDate ;
    }
}

FileHelper

public class FileHelper {
    public static final String FILENAME = "file.dat";

    public static void writeData(ArrayList<EltList> items, Context context){
        try{
            FileOutputStream fos = context.openFileOutput(FILENAME,Context.MODE_PRIVATE);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(items);
            oos.close();
        }
        catch (FileNotFoundException e){
            e.printStackTrace();
        }
        catch (IOException e){
            e.printStackTrace();
        }

    }

    public static ArrayList<EltList> readData(Context context){
        ArrayList<EltList> itemList = null ;
        try{
            FileInputStream fis = context.openFileInput(FILENAME);
            ObjectInputStream ois = new ObjectInputStream(fis);
            itemList = (ArrayList<EltList>) ois.readObject();
        }
        catch (FileNotFoundException e){
            e.printStackTrace();

            itemList = new ArrayList<>();
        }
        catch (IOException e){
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        return itemList ;
    }

}

所以我修改这个

ArrayList<EltList> itemList = null ;

在我的FileHelper中

ArrayList<EltList> itemList = new ArrayList<>() ;

它可以工作,但如果我以前写过任务,它会删除它

所以我删除了keepArrayList<EltList> itemList = null,我想用NullPointerException捕捉错误,但它不起作用

更新

这是不是重复的我只是想解释为什么我以前的任务都很清楚,我的答案是如何将我以前的任务保留在我的列表中


共 (0) 个答案