2015-10-01 112 views
0

我試圖在單擊編輯按鈕時在列表視圖中顯示每個列表項中的刪除按鈕。我在應用程序中的其他地方使用setVisibility,所以我試圖複製該代碼,但問題在於列表項中的佈局元素不是該片段實現的佈局xml文件的一部分,它們是由特殊的我的CursorAdapter。我可以使用佈局充氣器找到所需的可隱藏元素,因此我不再獲得nullPonterException,但是按鈕點擊時可見性不會發生變化。Android,在列表項佈局中設置可見性

//  Onclick method for Edit button 
    final Button buttonE = (Button) rootView.findViewById(R.id.editNotesButton); 
    buttonE.setTag(0); 
    //cannot use rootView as that points to fragment_main 
    final LayoutInflater factory = getLayoutInflater(savedInstanceState); 
    final View noteItemView = factory.inflate(R.layout.note_list_view_item, null); 

    final LinearLayout deleteButton = (LinearLayout) noteItemView.findViewById(R.id.delete_button_group); 
    final LinearLayout circleButton = (LinearLayout) noteItemView.findViewById(R.id.circle_button_group); 
    buttonE.setOnClickListener(new View.OnClickListener() {public void onClick(View v) { 

      final int status =(Integer) v.getTag(); 
      if(status == 1) { 
       buttonE.setText("Edit"); 
       circleButton.setVisibility(View.VISIBLE); 
       deleteButton.setVisibility(View.GONE); 
       v.setTag(0); //pause 
      } else { 
       buttonE.setText("Done"); 
       circleButton.setVisibility(View.GONE); 
       deleteButton.setVisibility(View.VISIBLE); 
       v.setTag(1); //pause 
      } 
     } 
     } 

    ); 

回答

0

       首先,我會弄清楚爲什麼你的代碼不work.You膨脹noteItemView,但它不會綁定到查看屏幕,那是你的「noteitemview」不會永久顯示,因此您在該視圖中的刪除按鈕不會顯示。
       然後我會顯示我的解決方案。 正如你所說,每一個列表項有一個刪除按鈕,你應該做的就是控制自己的知名度,所以首先要確保您的視圖綁定到ListView項有這樣一個按鈕,列表視圖項的childView view.In您getView的定製CursorAdapter,添加邏輯來處理刪除按鈕的可見性,例如,每個列表項數據中有一個名爲isDeleteButtonShow布爾變量,然後通過控制變量的值來控制刪除按鈕的知名度,一旦能見度應該改變,更新數據綁定到列表視圖並致電adapter.notifyDataSetChanged。希望這可以幫助你。

+0

基於關閉這個方法我得到它的工作,就像你說的我基本上是定義的刪除按鈕是否會在那裏或不在bindView和重劃一次,我改變了布爾,謝謝。 –

相關問題