将按钮视图和复选框列表设置为GONE

时间:2015-06-01 11:16:01

标签: android

我正在以编程方式创建一个带按钮的复选框列表。为了更新目的,我需要删除旧的复选框列表和按钮,然后在删除_ GONE中创建新的复选框列表和按钮。如何在delete_element方法中将其可见性设置为GONE?在将它们设置为delete_element之前,如何检查它们是否已存在?如何在 ArrayList<Integer> items = new ArrayList<Integer>(); LinearLayout ll; . . . . @Override public void onAsyncTaskFinished(ArrayList<Integer> result) { remove_elements(); createCheckboxList(result); } private void remove_elements() { for (int i : items) { CheckBox ch = (CheckBox) findViewById(i); ch.setVisibility(View.GONE); } Button btn = (Button) findViewById(1); btn.setVisibility(View.GONE); } private void createCheckboxList(final ArrayList<Integer> items) { this.items = items; final ArrayList<Integer> selected = new ArrayList<Integer>(); ll = (LinearLayout) findViewById(R.id.lila); for (int i = 0; i < items.size(); i++) { CheckBox cb = new CheckBox(this); cb.setText(String.valueOf(items.get(i))); cb.setId(items.get(i)); ll.addView(cb); } Button btn = new Button(this); btn.setLayoutParams(new LinearLayout.LayoutParams(500, 150)); btn.setText("submit"); btn.setId(1); ll.addView(btn); btn.setOnClickListener(new View.OnClickListener() { } }

中获取他们的身份证明
  

java.lang.NullPointerException:尝试调用虚方法&#39; void android.widget.Button.setVisibility(int)&#39;在空对象引用上

MainActivity中的

代码:

Enumerable.ToList

2 个答案:

答案 0 :(得分:0)

试试这个:

private void remove_elements() {
    for (int i : items) {
        CheckBox ch = (CheckBox) ll.findViewById(i);
        ch.setVisibility(View.GONE);
    }
    Button btn = (Button) ll.findViewById(1);
    if (btn != null ) {
        btn.setVisibility(View.GONE);
    }

}

答案 1 :(得分:0)

我会在convertView中的项目视图(ListView)中添加点击监听器 - 如果您可以点击该项目,则必须可见。然后,如果您希望将convertView完全删除,可以将convertView设置为INVISIBLEGONE

以下是适配器getView方法

的一些示例代码
public View getView(final int position, View convertView, ViewGroup parent) {

final ViewHolder holder;

if (convertView == null) {
    convertView = mInflater.inflate(R.layout.text_view, null);

    holder = new ViewHolder();
    holder.image = (ImageView) convertView.findViewById(R.id.iAccept);
   ......
    convertView.setTag(holder);
} else holder = (ViewHolder) convertView.getTag();

//Do this!!
convertView.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        v.setVisibility(View.INVISIBLE);

    }
});

...
...
//Set your values here for the ListView.

return convertView;

}

您必须保留一个外部对象列表,以了解哪个是VISIBLEINVISIBLE

请参阅此question,它有一些好主意