2015-10-01 73 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和重划一次,我改变了布尔,谢谢。 –

相关问题