이것은 listView에 항목을 추가하는 방법입니다. 하지만 안타깝게도 이전 항목을 삭제하고 이전 항목을 추가하는 대신 새 항목을 추가합니다.ListView 항목이 기존 항목을 덮어 씁니다.
// get prompts.xml view
LayoutInflater layoutInflater = LayoutInflater.from(MainActivity.this);
View promptView = layoutInflater.inflate(R.layout.input_dialog, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
MainActivity.this);
alertDialogBuilder.setView(promptView);
final EditText editText = (EditText) promptView
.findViewById(R.id.list_text);
ListView lv=(ListView)findViewById(R.id.itemslistView);
final List<String> MyList = new ArrayList<String>();
final ArrayAdapter<String> adp = new ArrayAdapter<String>(MainActivity.this,
R.layout.list, MyList);
lv.setAdapter(adp);
// setup a dialog window
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String NewListname = editText.getText().toString();
MyList.add(NewListname);
Toast.makeText(MainActivity.this, NewListname,
Toast.LENGTH_LONG).show();
adp.notifyDataSetChanged();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create an alert dialog
AlertDialog alert = alertDialogBuilder.create();
alert.show();
누구나 저를 추가 할 수 있습니까?
디버그 모드에서 OK의 OnClick에 myList에의 데이터를 확인 했습니까? 이전 데이터도 포함되어 있습니까? –
@ MysticMagic- 이전 데이터가 없었습니다. – coder
'new ArrayList();'이 이미 정의 된 경우 사용하지 마십시오. 그냥 항목을 추가하고'adp.notifyDataSetChanged(); '를 호출하십시오 –