Код: Выделить всё
package com.example.todolist;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class ToDoListActivity extends Activity {
private static final int DELETE = 1;
ArrayList <String> todoItems;
TextView myText;
ArrayAdapter aa;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView myListView=(ListView) findViewById(R.id.myListView);
final EditText myEditText=(EditText) findViewById(R.id.myEditText);
final ArrayList<String> todoItems=new ArrayList<String>();
final TextView myText=(TextView) findViewById(R.id.myText);
final ArrayAdapter<String> aa;
aa=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,todoItems);
myListView=(ListView) findViewById(R.id.myListView);
myListView.setAdapter(aa);
registerForContextMenu(myListView);
myEditText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event){
if(event.getAction()==KeyEvent.ACTION_DOWN)
if((keyCode==KeyEvent.KEYCODE_ENTER)){
todoItems.add(0, myEditText.getText().toString());
aa.notifyDataSetChanged();
myEditText.setText("");
return true;
}
return false;
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
menu.add(0,DELETE,0,"delete");
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
//int selectedPos = selectedItem.getSelectedPosition();
if (item.getItemId() == DELETE) {
// получаем инфу о пункте списка
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
// удаляем Map из коллекции, используя позицию пункта в списке
todoItems.remove(acmi.position);
// уведомляем, что данные изменились
aa.notifyDataSetChanged();
return true;
}
return super.onContextItemSelected(item);
}
//public void onItemClick(AdapterView<?> parent, View itemClicked, int position,
//long id) { int i = itemClicked.getId();
//final TextView myText=(TextView) findViewById(R.id.myText);
// Toast.makeText(getApplicationContext(), ((TextView) itemClicked).getText(),Toast.LENGTH_SHORT).show();
// myText.setText(((TextView) itemClicked).getText());
//}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.to_do_list, menu);
//return true;
menu.add("menu1");
menu.add("menu2");
menu.add("menu3");
menu.add("menu4");
return super.onCreateOptionsMenu(menu);
}
}
Хочу сделать так, чтобы ListView заполнялся из EditText, а при удержании на какой-нибудь строке-появлялось контекстное меню и с его помощью можно было бы удалить эту самую выделенную строку, на шаге "Нажатие delete в контекстном меню" происходит крэш. уже часов 6 серфю инет и манулы-ничего не выходит,помогите,пожалуйста.
в коде много комментов-прощу прощения