Back to project page todo-android.
The source code is released under:
MIT License
If you think the Android project todo-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package me.ishan.todo.app; //from w w w . j av a 2s . c o m import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.util.ArrayList; public class TodoActivity extends ActionBarActivity { private final int REQUEST_CODE = 20; private ArrayList<String> todoItems; private ArrayAdapter<String> aTodoItems; private ListView lvItems; private EditText etNewItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_todo); etNewItem = (EditText) findViewById(R.id.etNewItem); lvItems = (ListView) findViewById(R.id.lvItems); readItems(); aTodoItems = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems); lvItems.setAdapter(aTodoItems); setupListViewListener(); } private void setupListViewListener() { lvItems.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapter, View item, int pos, long id) { todoItems.remove(pos); aTodoItems.notifyDataSetChanged(); writeItems(); return true; } }); lvItems.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View item, int pos, long id) { String todoItemText = todoItems.get(pos).toString(); launchEditView(todoItemText, pos); } }); } public void launchEditView(String todoItemText, int pos) { Intent i = new Intent(TodoActivity.this, EditItemActivity.class); i.putExtra("todoItem", todoItemText); i.putExtra("itemIndex", pos); startActivityForResult(i, REQUEST_CODE); } public void onAddedItem(View v) { String itemText = etNewItem.getText().toString(); aTodoItems.add(itemText); etNewItem.setText(" "); writeItems(); } public void readItems() { File filesDir = getFilesDir(); File todoFile = new File(filesDir, "todo.txt"); try { todoItems = new ArrayList<String>(FileUtils.readLines(todoFile)); } catch (IOException e) { todoItems = new ArrayList<String>(); } } public void writeItems() { File filesDir = getFilesDir(); File todoFile = new File(filesDir, "todo.txt"); try { FileUtils.writeLines(todoFile, todoItems); } catch (IOException e) { e.printStackTrace(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { String editedItemText = data.getExtras().getString("editedItemText"); int editedItemIndex = data.getExtras().getInt("editedItemIndex"); todoItems.set(editedItemIndex, editedItemText); aTodoItems.notifyDataSetChanged(); writeItems(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.todo, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }