我正在尝试制作“待办事项列表”应用,并且在输入任务的地方有一个EditText字段。当我按下“添加”浮动操作按钮时,第一个任务完美地进入了列表视图,但是当我尝试添加第二个任务时,它将第一个任务更改为第二个任务,依此类推。所以事情是我一次只能完成一项任务,但我想拥有的是任务列表。
这是我的onCreate方法,在其中声明浮动操作按钮并为其设置OnClickListener:
DBHelper dbHelper;
ArrayAdapter<String> mAdapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
// Finds you button from the xml layout file
FloatingActionButton faButton = (FloatingActionButton) findViewById(R.id.fab);
// Waits for you to click the button
faButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Starts the function below
addNotification();
listView.setAdapter(mAdapter);
addToDoElement(null);
}
});
listView = (ListView)findViewById(R.id.lstTask);
}
这是将任务从EditText添加到ListView的方法
ArrayList<String> taskList;
public void addToDoElement(View view) {
listView = (ListView) findViewById(R.id.lstTask);
taskList = new ArrayList<>();
mAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.task_title, taskList);
listView.setAdapter(mAdapter);
//Gets TASK text from EditText
EditText mEdit = (EditText)findViewById(R.id.titlu);
Log.v("EditText", mEdit.getText().toString());
taskList.add(mEdit.getText().toString());
mEdit.setText("");
mAdapter.notifyDataSetChanged();
}
答案 0 :(得分:1)
在taskList
方法中,初始化mAdapter
和onCreate
的部分只需完成一次。所以移动这个方块
listView = (ListView) findViewById(R.id.lstTask);
taskList = new ArrayList<>();
mAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.task_title, taskList);
listView.setAdapter(mAdapter);
在您的onCreate
方法中。您当前的代码正在重置每个click事件上的适配器和任务列表。