이 질문은 - Android - Listview delete item and Refresh과 유사합니다.목록보기 삭제 항목 및 새로 고침 - android
나는 내 어댑터를 새로 고침하지 못할 :
adapter.notifyDataSetChanged();
내가 시도 :
adapter.remove(adapter.getItem(pos));
하지만 성공하지 않고, 한 시간 (이상한를 ...).
다른 답이있다 :
Call that Activity once again Using Intent
sombody 날이에 대한 정확한 코드를 제공 (또는 어댑터/커서) 할 수 있습니까?
나는 이것을 두 시간 동안 계속 시도하고있다.
내 전체 코드 :
protected void onCreate (Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
setContentView(R.layout.personalmessageview);
headtitle= getIntent().getExtras().getString("head");
setTitle(headtitle);
personalresults = getIntent().getExtras().getStringArrayList("personalres");
personalresultswithtime = getIntent().getExtras().getStringArrayList("personalrestime");
// setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,personalresults));
ListView list = (ListView)findViewById(R.id.listview_personal);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, personalresults);
list.setAdapter(adapter);
registerForContextMenu(list);
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
String time = personalresultswithtime.get(pos).toString();
Show_Alert_box(v.getContext(),"Please select action.",time,pos);
return true;
}
});
공공 무효 Show_Alert_box (컨텍스트 컨텍스트, 문자열 메시지, 문자열 시간, INT 위치) 최종 문자열 타임 스탬프 = 시간;
final int pos = position;
final AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle(getString(R.string.app_name));
alertDialog.setButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try
{
db = databaseHelper.getWritableDatabase();
db.delete("messages","timestamp" + "=?", new String[] { timestamp });
Log.d("DB"," delete! ");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(PersonalMessageView.this, android.R.layout.simple_list_item_1, personalresults);
adapter.remove(adapter.getItem(pos)); //not working t all! why ?
list.notify();
list.invalidate();
personalresults.remove(pos);
personalresultswithtime.remove(pos);
adapter.notifyDataSetChanged();
db.close();
}
catch(Exception e)
{
}
} });
alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
} });
alertDialog.setMessage(message);
alertDialog.show();
}
제거 항목을 시도하고 다음 어댑터에 사용하는 어떤 –
을 chaged 날짜 설정을 통지? 즉 ArrayAdapter 또는 BaseAdapter 또는 그 중 하나에서 파생 된 클래스? –
iv'e 코드를 추가했습니다. 다시 확인해주세요. – Smoker09