Android 刷新listview设置所有可见复选框
编辑:我希望通过长时间单击显示所有复选框。但只显示一个复选框 我有一个带有自定义row.xml的listview。xml有一个复选框、imageview、textview和imageview 默认情况下,复选框为visibility:GONE in the row.xml 在代码中,我重写了下一个方法:Android 刷新listview设置所有可见复选框,android,listview,checkbox,Android,Listview,Checkbox,编辑:我希望通过长时间单击显示所有复选框。但只显示一个复选框 我有一个带有自定义row.xml的listview。xml有一个复选框、imageview、textview和imageview 默认情况下,复选框为visibility:GONE in the row.xml 在代码中,我重写了下一个方法: @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
checkBox=(CheckBox)findViewById(R.id.checkBox);
checkBox.setVisibility(View.VISIBLE);
myArrayAdapter.notifyDataSetChanged();
}
}
但只显示一行。我尝试了所有的代码,但我找不到解决方案。有什么想法吗
接吻^^
使用我的自定义_row.xml进行编辑
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkBox"
android:checked="false"
android:visibility="gone"
/>
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@drawable/image"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/text1"/>
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:id="@+id/imageView"
android:src="@android:drawable/ic_menu_add"
/>
</LinearLayout>
可见性:gone的行为就像视图不存在一样。您应该在xml中使用visibility:invisible,以便以后可以从代码中看到它
在适配器集合CheckBoxVisibility(布尔值可见)中创建一个方法。并使用它设置所需的可见性
private int checkboxVisibility = View.GONE;
public void setCheckboxVisibility(int visibility) {
this.checkboxVisibility = visibility
}
然后在适配器的getView()方法中使用checkboxVisibility属性
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
checkbox.setVisibility(checkboxVisibility);
...
}
我找不到有效的解决办法。最后,我构建了两个自定义_row.xml和两个类mycustom_arrayadapter 第一个类mycustom_arrayadapter获取带有checkbox.visibility的custom_行(GoE),第二个类mycustom_arrayadapter获取带有visibility.visibility的custom_行(当我在listview中长单击时)
这是可行的,但我认为这是最糟糕的解决方案;(您可以发布您的xml吗?我想您已经将wrap_content设置为high,您正在注册上下文菜单的哪个视图?整个ListView还是一行?我不理解覆盖上下文菜单方法的原因,但您可以在
getView()中将它们设置为visible
)
方法根据某些标志或您正在使用的任何东西。编辑:我不知道我在做什么。我是新手。我只希望当我有一个较长的时间时,在所有列表视图中出现复选框,如在文件资源管理器中,然后删除、重命名、共享等。Thak的人会为您的答案。Kisses^^不,这不正确。这并不意味着它从来就不存在,只是没有为它腾出一个空间。这并不意味着它不能被改成可见的。我应该重新措辞:“就好像没有添加视图一样。”如果一个不可见的用法出现在复选框的空白处。我用更好的方法^^谢谢埃洛迪·费拉里,我要试试这个。吻^^