2011-11-19 3 views
0

나는 데이터가 얼마나 존재하는지에 따라 동적으로 만들어진 테이블을 가지고 있습니다.테이블 행을 길게 누름

테이블 행의 아무 곳이나 길게 눌러 원하는 항목을 삭제하거나 편집 할 수 있기를 원합니다. 가능합니까? XML을 동적으로 구축하지 않고이 모든 작업을 수행해야한다는 것을 기억하십시오.

달성하려는 목표와 관련이 있습니까?

@override 

public boolean onKeyLongPress(int keyCode, KeyEvent event) { 

    if (keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     // do your stuff here 
     return true; 
    } 
    return super.onKeyLongPress(keyCode, event); 
} 
` 

어떤 조언을 받으실 수 있습니다.

답변

0

동적으로 생성 된 표 행에 대한 컨텍스트 메뉴를 등록하십시오.

전화 registerForContextMenu(tableRow) 및 오버라이드 (override) onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo). 는 회신에 대한 Context Menu

0

다음은 Mark Murphy의 저서에서 수정 한 몇 가지 예제 코드입니다. 내 목록은 데이터베이스를 기반으로합니다.

private AdapterView.OnItemClickListener onListClick=new AdapterView.OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent,View view, int position,long id) { 
     String selection= "_id=" + String.valueOf(id); 
     Cursor c = db.query("commentlist", columns, selection, null, null, null, null); 
     c.moveToFirst(); 
     checkDelete(c.getLong(0),c.getString(1)); 
    } 
}; 
private void checkDelete(final long id, final String record) { 
    AlertDialog.Builder builder=new AlertDialog.Builder(this); 
    builder 
     .setTitle("Delete task") 
     .setMessage("Do you want to delete this task " + record + " ?") 
     .setNegativeButton("No", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dlg, int sumthin) { 
      } 
     }) 
     .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dlg, int sumthin) { 
      db.execSQL("DELETE FROM commentlist WHERE _id=" + id); 
      model.requery(); 
      } 
     }) 
     .show(); 
    } 
+0

감사를 참조하십시오. 도움이되었다 그러나 내 데이터는 이미 tableview로 설정되어 있었고 나는 그것을 바꾸고 싶지 않았다. 솔루션을 발견했다. :) – adoo42

관련 문제