2011-08-21 48 views
0

我正在開發中,用戶通過選擇從列表視圖中創建新的填充一種形式,形式存儲在SQLite數據庫和列表視圖顯示Android應用程序填充。正是這樣的獲取ListView項的ID當從一個數據庫

開始只能創建新 填充表格的ListView後會像

創建新

FORM1

FORM2

每個形式是指記錄在數據庫表

現在我想要做的是。 如果我點擊Form1,它應該打開供用戶編輯等等。 我使用列表視圖的位置,以配合記錄的主ID,並顯示相應的記錄

但是當我刪除記錄

整個問題是未來是否有更優雅的方法來獲取ID ListView項從數據庫填充時的狀態?

回答

1

當單擊某個項目,你可以得到它在這樣ID: 設置一個OnItemClickListener到ListView,然後你會得到ID:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> av, View v, int pos, long id) 
     { 
      // Do whatever you want. "id" as the id in the db. 
     } 
    }); 
0

如果你選擇你的數據庫中的所有記錄,我的意思是不附加任何條件,然後在查詢窗體的位置會在數據庫內的同一位置,但如果你在查詢中具有的條件比你只能得到您的表單在您的條件查詢內的位置。你提到的點擊,所以在setOnItemClickListener()你必須指定在ListView項目位置INT位置變化,有時也有,你有一半可見項的情況下,那麼你就可以套用公式positon = position - listView.getFirstVisiblePosition();這樣你避免與位置加擾數據。同樣在getView()也可以使用相同的int position變量。我希望這是合理的。

當你刪除記錄,你可以用信號的ListView重新填充自己。使用當前和新數據(相同的數據減去適配器中的已刪除記錄),如果這是您要查找的內容,您也可以發出信號(執行查詢以刪除該記錄)數據庫以刪除記錄。

相關問題