Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据JSON响应设置多个按钮?_Android_Android Layout - Fatal编程技术网

Android 如何根据JSON响应设置多个按钮?

Android 如何根据JSON响应设置多个按钮?,android,android-layout,Android,Android Layout,我已经创建了一个从服务器获取数据的应用程序。因此,我在代码中使用了JSON解析。我成功地从服务器解析了我的JSON。现在,我想根据从JSON响应获得的可见性来设置布局中的按钮 即,若可见性为真,则按钮应可见,若为假,则按钮应禁用。它可以工作,但如果某个按钮的可见性为false,则布局中有一个空间。所以,如何在布局中动态设置所有可见的按钮显示在一行中 我已经创建了三个线性布局,每个布局包含三个按钮。现在,如果json响应对某些按钮说可见性为false,那么我将该按钮的可见性设置为off if

我已经创建了一个从服务器获取数据的应用程序。因此,我在代码中使用了JSON解析。我成功地从服务器解析了我的JSON。现在,我想根据从JSON响应获得的可见性来设置布局中的按钮

即,若可见性为真,则按钮应可见,若为假,则按钮应禁用。它可以工作,但如果某个按钮的可见性为false,则布局中有一个空间。所以,如何在布局中动态设置所有可见的按钮显示在一行中

我已经创建了三个线性布局,每个布局包含三个按钮。现在,如果json响应对某些按钮说可见性为false,那么我将该按钮的可见性设置为off

  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。