Android 如何根据JSON响应设置多个按钮?
我已经创建了一个从服务器获取数据的应用程序。因此,我在代码中使用了JSON解析。我成功地从服务器解析了我的JSON。现在,我想根据从JSON响应获得的可见性来设置布局中的按钮 即,若可见性为真,则按钮应可见,若为假,则按钮应禁用。它可以工作,但如果某个按钮的可见性为false,则布局中有一个空间。所以,如何在布局中动态设置所有可见的按钮显示在一行中 我已经创建了三个线性布局,每个布局包含三个按钮。现在,如果json响应对某些按钮说可见性为false,那么我将该按钮的可见性设置为offAndroid 如何根据JSON响应设置多个按钮?,android,android-layout,Android,Android Layout,我已经创建了一个从服务器获取数据的应用程序。因此,我在代码中使用了JSON解析。我成功地从服务器解析了我的JSON。现在,我想根据从JSON响应获得的可见性来设置布局中的按钮 即,若可见性为真,则按钮应可见,若为假,则按钮应禁用。它可以工作,但如果某个按钮的可见性为false,则布局中有一个空间。所以,如何在布局中动态设置所有可见的按钮显示在一行中 我已经创建了三个线性布局,每个布局包含三个按钮。现在,如果json响应对某些按钮说可见性为false,那么我将该按钮的可见性设置为off if
if (Menuname.equals("StudentDailyDiary")) {
studentdiary.setVisibility(View.VISIBLE);
moreOptionLayout.setVisibility(View.VISIBLE);
hrview.setVisibility(View.VISIBLE);
rlleftview.setVisibility(View.VISIBLE);
rlrightview.setVisibility(View.VISIBLE);
}
if (Menuname.equals("BookSearch")) {
studlibrary.setVisibility(View.VISIBLE);
moreOptionLayout.setVisibility(View.VISIBLE);
hrview.setVisibility(View.VISIBLE);
rlleftview.setVisibility(View.VISIBLE);
rlrightview.setVisibility(View.VISIBLE);
}
假设在第一个布局中有三个按钮,其中第二个按钮的可见性为false,则应在第二个按钮的位置上放置第三个按钮。所有布局中的按钮不应有空白。也就是说,如果第三个按钮的可见性为false,则第二个布局的第一个按钮应设置在第三个按钮的位置上
我认为正确的视图组是
网格布局
这里有一个简单的例子:
activity\u main.xml
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="80dp"
android:gravity="center"
android:numColumns="3"
android:stretchMode="columnWidth" />
本例使用字符串,但您可以根据需要制作适配器。现在,JSON响应完成后,只需填充数组并将其设置为适配器
希望对您有所帮助我认为正确的视图组应该是GridLayout
这里有一个简单的例子:
activity\u main.xml
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="80dp"
android:gravity="center"
android:numColumns="3"
android:stretchMode="columnWidth" />
本例使用字符串,但您可以根据需要制作适配器。现在,JSON响应完成后,只需填充数组并将其设置为适配器
希望有帮助元素可见性有三个选项
View.VISIBLE
View.INVISIBLE
View.GONE
对于不想显示的图元,请使用View.GONE 元素可见性有三个选项
View.VISIBLE
View.INVISIBLE
View.GONE
对于不想显示的图元,请使用View.GONE
View.INVISIBLE
及
没有空间,你应该使用View.GONE
View.INVISIBLE
及
没有空间,你应该使用视图。没有了你有两个选择
1:-
View.VISIBLE //Visible the view which is acquire its space
View.INVISIBLE //Invisible the view and it acquire the space
View.GONE //visibility Gone of its view and also not acquire view space
2:-
View.VISIBLE //Visible the view which is acquire its space
View.INVISIBLE //Invisible the view and it acquire the space
View.GONE //visibility Gone of its view and also not acquire view space
您可以使用RecyclerView
并将模型传递到适配器
,然后根据其模型显示按钮
您有两个选项来执行此操作
1:-
View.VISIBLE //Visible the view which is acquire its space
View.INVISIBLE //Invisible the view and it acquire the space
View.GONE //visibility Gone of its view and also not acquire view space
2:-
View.VISIBLE //Visible the view which is acquire its space
View.INVISIBLE //Invisible the view and it acquire the space
View.GONE //visibility Gone of its view and also not acquire view space
您可以使用RecyclerView
并将模型传递给适配器
,然后根据其模型显示按钮在布局XML中将按钮的可见性设置为消失
因此,当它们的可见性不可见时,它们不会留下任何空白
<Button
android:id="@+id/btn_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone"/>
将布局XML中的按钮可见性设置为消失
因此,当它们的可见性不可见时,它们不会留下任何空白
<Button
android:id="@+id/btn_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone"/>
为什么不使用RecyclerView
在这种情况下,您必须将RecyclerView与GridLayoutManager一起使用。@MayurPatel是的,谢谢,它很有效。@Kinjal不客气。为什么不使用RecyclerView
在这种情况下,您必须将RecyclerView与GridLayoutManager一起使用。@MayurPatel是的,谢谢你,很有效。@Kinjal欢迎你,谢谢。它帮助我解决我的问题。我已经用java的gridlayout拍摄了recyclerview。谢谢。它帮助我解决我的问题。我使用java中的gridlayout拍摄了recyclerview。