2013-05-11 23 views
-1

我相信這是一個非常普遍的任務:
GridView充滿了自定義佈局作爲項目。每個佈局包含一個圖像和一個按鈕。如果用戶點擊圖像,則執行一個動作(例如,顯示圖像)。
如果用戶按下按鈕 - 另一個操作(從GridView刪除項目)。
前者在AdapterView.OnItemClickListener的onItemClick()內部實現。
如何實現後者?Android - GridView每個項目有兩個動作

+2

請發佈您的代碼 – Pragnani 2013-05-11 12:04:33

+0

我可以說最簡單的方法是將位置設置爲您的視圖的標記,然後在您的onClick方法獲取標記值和將其轉換爲整數。 – 2013-05-11 12:08:17

+0

好的,讓我重新修改這個問題 – sad1raf 2013-05-11 12:14:57

回答

0

我能說的最簡單的方法是設置位置到您的視圖的標記,然後在您的onClick方法得到的TAG值,將它轉換爲整數。 (per @ sad1raf的請求我添加了我的評論作爲答案!)

0

您可以創建一個自定義的ArrayAdapter並將其放到GridView中。 在刪除對象後,傳遞上下文和要調用的Class。最重要的是傳遞一個數組,用於填充所有單元格(在你的情況下,一個整數數組)。 內。然後

@Override 
public View getView(int position, View convertView, ViewGroup parent) 

你必須:

  • 開放數據庫連接和獲取數據
  • 創建一個對話框按下按鈕
製造更安全的數據刪除
  • 顯示對話框

    第二步你可以做這樣的事情:

    final AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    
        builder.setTitle("Warning"); 
        builder.setMessage("Are you sure you want to permanently delete the selected item?"); 
        builder.setCancelable(true); 
    
        builder.setPositiveButton("Yes",new OnClickListener(){ 
         public void onClick(DialogInterface dialog, int id){ 
          dao.deleteEventData(item); 
          MyUtility.startActivityNoAnimsClearTop(context, classToLaunch); 
         } 
        }); 
    
        builder.setNegativeButton("No", new OnClickListener(){ 
         public void onClick(DialogInterface dialog, int id){ 
          dialog.dismiss(); 
         } 
        }); 
    

    在我的代碼使用DAO數據庫連接,它是管理數據的好方法,但不是dao.deleteEventData(項目),你可以把每一個你需要刪除圖像的代碼。然後當你按下按鈕時,顯示對話框。

    Button btnDeleteList = (Button)cell.findViewById(R.id.btnDeleteList); 
        btnDeleteList.setOnClickListener(new View.OnClickListener() {   
         @Override 
         public void onClick(View v) { 
          builder.show(); 
         } 
        });