Android studio搜索结果视图

时间:2018-02-06 18:55:14

标签: java android json layout view

我有搜索和结果活动。提交搜索后,联系网络服务器,我将得到json数组。该数组中的每个对象都包含有关该结果的少量信息对。 我已经为结果进行了视图设计,但我不知道如何为所有搜索结果复制和重复使用该视图,为结果创建一个文本视图会很简单,但是如何处理这个复杂的布局呢? 这是我要为每个结果复制和使用的代码... 此外,我希望结果是可点击的,当点击进入详细信息页面时,应该显示有关它的更多详细信息,所以第二个问题是如何跟踪用户点击的内容(顺便说一句。我知道ID被搞砸了,我将在稍后设置它们)

<LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:layout_marginTop="10dp"
            android:id="@+id/result"
            android:paddingLeft="15dp"
            android:paddingRight="15dp"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:background="@drawable/background_border"
            android:onClick="ShowDetails">

            <ImageView
                app:srcCompat="@drawable/golettaverde"
                android:id="@+id/imageView2"
                android:layout_weight="1"
                android:background="@drawable/image_background_border"
                android:scaleType="fitXY"
                android:layout_width="120dp"
                android:layout_height="120dp" />

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:layout_marginLeft="5dp"
                android:gravity="center_vertical|center_horizontal">

                <TextView
                    android:text="Goletta Verde"
                    android:layout_width="wrap_content"
                    android:id="@+id/textView5"
                    android:layout_weight="1"
                    android:textColor="?attr/colorButtonNormal"
                    android:textStyle="normal|bold"
                    android:textSize="26sp"
                    android:layout_height="10dp" />

                <TextView
                    android:text="5 seats - 18.60 meters"
                    android:layout_width="wrap_content"
                    android:id="@+id/textView6"
                    android:layout_weight="1"
                    android:textColor="?attr/colorButtonNormal"
                    android:textSize="20sp"
                    android:layout_marginLeft="3dp"
                    android:layout_height="7dp" />

                <TextView
                    android:text="Year 2009"
                    android:layout_width="wrap_content"
                    android:id="@+id/textView7"
                    android:layout_weight="1"
                    android:textSize="20sp"
                    android:textColor="?attr/colorButtonNormal"
                    android:layout_marginLeft="3dp"
                    android:layout_height="7dp" />

                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="wrap_content"
                    android:layout_height="10dp"
                    android:layout_weight="1">

                    <ImageView
                        app:srcCompat="@android:drawable/btn_star_big_on"
                        android:id="@+id/imageView3"
                        android:layout_weight="1"
                        android:layout_width="30dp"
                        android:layout_height="wrap_content" />
                    <ImageView
                        app:srcCompat="@android:drawable/btn_star_big_on"
                        android:id="@+id/imageView3"
                        android:layout_weight="1"
                        android:layout_width="30dp"
                        android:layout_height="wrap_content" />
                    <ImageView
                        app:srcCompat="@android:drawable/btn_star_big_on"
                        android:id="@+id/imageView3"
                        android:layout_weight="1"
                        android:layout_width="30dp"
                        android:layout_height="wrap_content" />
                    <ImageView
                        app:srcCompat="@android:drawable/btn_star_big_on"
                        android:id="@+id/imageView3"
                        android:layout_weight="1"
                        android:layout_width="30dp"
                        android:layout_height="wrap_content" />
                    <ImageView
                        app:srcCompat="@android:drawable/btn_star_big_on"
                        android:id="@+id/imageView3"
                        android:layout_weight="1"
                        android:layout_width="30dp"
                        android:layout_height="wrap_content" />
                </LinearLayout>

                <TextView
                    android:text="300€"
                    android:layout_width="wrap_content"
                    android:id="@+id/textView7"
                    android:layout_weight="1"
                    android:textSize="24sp"
                    android:textColor="?attr/colorButtonNormal"
                    android:layout_marginLeft="3dp"
                    android:layout_height="7dp"
                    android:textStyle="normal|bold" />

1 个答案:

答案 0 :(得分:1)

  1. 您可以使用Recycler View来实现此目的。它易于使用且是您工作的最有效方式。您只需要初始化视图,它就会按照您的方式运行。您可以观看this tutorial以了解如何使用回收站视图。

  2. 要使您的视图可以点击,您需要添加

    android:foreground="?selectableItemBackground"

    到视图的根标记。

  3. 您可以为在Recycler视图中创建的每个列表对象提供ID或标记,以了解单击的项目并采取相应的行动。

  4. 希望它适合你。欢呼!