動態刪除列表視圖(ListView)的內容
創建列表視圖(ListView)的 OnItemClickListener(), 當用戶點擊列表視圖的一個項目, 然後打開一個對話框, 如果用戶點擊"OK", 此一項目將被刪除.
佈局文件(main.xml)無需修改, 參閱前文" 動態添加列表視圖(ListView)的內容".
修改主要代碼 AndroidDynList.java, 添加 listViewOnItemClickListener.
packagecom.AndroidDynList;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.DialogInterface;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.ArrayAdapter;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.ListView;
publicclass AndroidDynList extendsActivity {
EditText input;
Button add, clear;
ListView listview;
ArrayAdapter<String> MyArrayAdapter;
/** Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
input = (EditText)findViewById(R.id.input);
add = (Button)findViewById(R.id.add);
clear = (Button)findViewById(R.id.clear);
listview = (ListView)findViewById(R.id.list);
MyArrayAdapter = newArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
listview.setAdapter(MyArrayAdapter);
add.setOnClickListener(addOnClickListener);
clear.setOnClickListener(clearOnClickListener);
listview.setOnItemClickListener(listViewOnItemClickListener);
}
privateButton.OnClickListener addOnClickListener
=newButton.OnClickListener(){
@Override
publicvoid onClick(View arg0) {
// TODO Auto-generated method stub
String newInput = input.getText().toString();
MyArrayAdapter.add(newInput);
MyArrayAdapter.notifyDataSetChanged();
}};
privateButton.OnClickListener clearOnClickListener
=newButton.OnClickListener(){
@Override
publicvoid onClick(View arg0) {
// TODO Auto-generated method stub
MyArrayAdapter.clear();
MyArrayAdapter.notifyDataSetChanged();
}};
privateListView.OnItemClickListener listViewOnItemClickListener
=newListView.OnItemClickListener(){
@Override
publicvoid onItemClick(AdapterView<?> parent, View view, intposition,
longid) {
// TODO Auto-generated method stub
finalString strSelectedItem = parent.getItemAtPosition(position).toString();
AlertDialog.Builder delAlertDialog = newAlertDialog.Builder(AndroidDynList.this);
delAlertDialog.setTitle("- DELETE Selected Item? -");
delAlertDialog.setMessage(strSelectedItem);
delAlertDialog.setPositiveButton("OK",newDialogInterface.OnClickListener() {
// do something when the button is clicked
publicvoid onClick(DialogInterface arg0, intarg1) {
MyArrayAdapter.remove(strSelectedItem);
MyArrayAdapter.notifyDataSetChanged();
}
});
delAlertDialog.setNegativeButton("Cancel",newDialogInterface.OnClickListener() {
// do something when the button is clicked
publicvoid onClick(DialogInterface arg0, intarg1) {
//...
}
});
delAlertDialog.show();
}};
}