리스트뷰 삭제하면 바로 화면에서 삭제가 안되고 다시 들어와야 삭제되있어요
invaliate나 onResume 써봐도 안되요
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list_View=(ListView)findViewById(R.id.listView1);
sp = this.getSharedPreferences("Contact List", MODE_PRIVATE);
ed = sp.edit();
Map map = sp.getAll();
List l1 = new ArrayList<>();
Set keySet = map.keySet();
Iterator iterator = keySet.iterator();
while (iterator.hasNext()) {
Map newMap = new HashMap();
String key = (String) iterator.next();
String value = (String)map.get(key);
newMap.put("Name", key);
newMap.put("Phone", value);
l1.add(newMap);
}
final BaseAdapter a1 = new SimpleAdapter(this,l1,R.layout.view_ct,
new String[] {"Name", "Phone" },
new int[] {R.id.textView1, R.id.textView2});
list_View.setAdapter(a1);
list_View.setOnItemClickListener(this);
btn_add=(Button)findViewById(R.id.btn_add);
btn_add.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), ActivityOne.class);
startActivity(i);
}
});
}
public void onResume(){
list_View=(ListView)findViewById(R.id.listView1);
sp = this.getSharedPreferences("Contact List", MODE_PRIVATE);
ed = sp.edit();
Map map = sp.getAll();
List l1 = new ArrayList<>();
Set keySet = map.keySet();
Iterator iterator = keySet.iterator();
while (iterator.hasNext()) {
Map newMap = new HashMap();
String key = (String) iterator.next();
String value = (String)map.get(key);
newMap.put("Name", key);
newMap.put("Phone", value);
l1.add(newMap);
}
final BaseAdapter a1 = new SimpleAdapter(this,l1,R.layout.view_ct,
new String[] {"Name", "Phone" },
new int[] {R.id.textView1, R.id.textView2});
list_View.setAdapter(a1);
list_View.setOnItemClickListener(this);
btn_add=(Button)findViewById(R.id.btn_add);
btn_add.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), ActivityOne.class);
startActivity(i);
}
});
super.onResume();
}
@Override
public void onItemClick(final AdapterView <?>parent, View view, int position, long id) {
HashMap selection = (HashMap)
list_View.getItemAtPosition(position);
String name = (String) selection.get("Name");
String number = (String) selection.get("Phone");
ed.remove(name);
ed.commit();
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setMessage("삭제하시겠습니까?");
alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(),
"전화번호삭제", Toast.LENGTH_SHORT).show();
}
}
);
list_View.invalidate();
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog al = alertDialog.create();
al.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}