2011-11-28 41 views
2

我已經創建了一個gridview並使用自定義適配器。我在網格視圖中添加了兩個圖像。一個是圖像,另一個看起來像關閉按鈕。我的計劃是從gridview中刪除項目,如果我們點擊關閉按鈕,它正在工作。我有一個gridview上方的textview顯示gridview中的項目數量。但我無法更新項目數量的文本視圖,同時刪除。請幫我找到如何更新用戶界面。我的代碼如下所示Gridview的孩子點擊更新用戶界面android

public View getView(int position, View convertView, ViewGroup parent) 
{ 

    View MyView = convertView; 
    pos=position; 
    if (convertView == null) 
    { 
     LayoutInflater li = (LayoutInflater) MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     MyView = li.inflate(R.layout.grid_item_for_bag, null); 


     ImageView iv = (ImageView) MyView.findViewById(R.id.grid_item_bag_image); 
     iv.setImageResource(R.drawable.sampleImage); 

     ImageView close = (ImageView) MyView.findViewById(R.id.grid_item_bag_close); 
     close.setImageResource(R.drawable.closeicon); 

      close.setOnClickListener(new OnClickListener() 
      { 

       @Override 
       public void onClick(View v) { 

        BagList.deleteItem(pos); 

        notifyDataSetChanged(); 
       } 
      }); 



    } 

    return MyView; 
} 

回答

3

假設您在具有網格的活動中的某處參考了您的文本視圖。

主要思想 - 在您的適配器上擁有自己的DataSetObserver。

它應該看起來像下面的代碼:

// Your activity 

// It's Your grid 
GridView gridView; 
// It's Your text view 
TextView numberOfItems; 
// It's Your adapter 
BaseAdapter adapter = new YourAdapter(); 

@Override 
protected void onCreate(final Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.patient_name_enter_screen); 

    // Init gridView and numberOfItems 
    ... 

    gridView.setAdapter(adapter); 

    adapter.registerDataSetObserver(new DataSetObserver() { 
     @Override 
     public void onChanged() { 

      // Here we know that the adapter was updated 
      textView.setText(adapter.getCount()); 
     } 
    };) 

    ... 
} 
+0

感謝sandrstar。你救了我。真的行。 – Juliousraj