1

我有四个列表视图保存在带有标题行的表格的一行中。在从 ist 列表视图中选择项目时,显示第二个列表视图的项目,然后在其选择项目时,相应地为第四个列表视图显示第三个列表视图的值。这些值因选择而异。

目前我默认选择第一个值。它工作正常。

但是,因为它是连续的,我正在使用水平滚动布局。

我一次只需要显示一个列表视图,并且在选择它的元素后,应该显示下一个列表视图。

请帮助家伙..

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent" >

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:background="@android:color/holo_blue_light"
                android:gravity="center_vertical"
                android:maxLines="1"
                android:paddingBottom="5dp"
                android:paddingLeft="5dp"
                android:paddingTop="5dp"
                android:text="@string/primCat"
                android:textColor="#000"
                android:textSize="18sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/secCatTV"
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:background="@android:color/holo_blue_light"
                android:gravity="center_vertical"
                android:maxLines="1"
                android:paddingBottom="5dp"
                android:paddingLeft="5dp"
                android:paddingTop="5dp"
                android:text="@string/secCat"
                android:textColor="#000"
                android:textSize="18sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/testNameTV"
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:background="@android:color/holo_blue_light"
                android:gravity="center_vertical"
                android:maxLines="1"
                android:paddingBottom="5dp"
                android:paddingLeft="5dp"
                android:paddingTop="5dp"
                android:text="@string/test"
                android:textColor="#000"
                android:textSize="18sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/advTestTV"
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:background="@android:color/holo_blue_light"
                android:gravity="center_vertical"
                android:maxLines="1"
                android:paddingBottom="5dp"
                android:paddingLeft="5dp"
                android:paddingTop="5dp"
                android:text="@string/advTst"
                android:textColor="#000"
                android:textSize="18sp"
                android:textStyle="bold" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <ListView
                android:id="@+id/primaryCategories"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:dividerHeight="0dp" >
            </ListView>

            <ListView
                android:id="@+id/secondaryCategories"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:dividerHeight="0dp" >
            </ListView>

            <ListView
                android:id="@+id/testsList"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:dividerHeight="0dp" >
            </ListView>

            <ListView
                android:id="@+id/selectedTestList"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:dividerHeight="0dp" >
            </ListView>
        </TableRow>
    </TableLayout>
</HorizontalScrollView>
4

2 回答 2

2

使用下面的 xml 代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<HorizontalScrollView
    android:id="@+id/scrollview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/parent"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:baselineAligned="false"
        android:orientation="horizontal" >

        <ListView
            android:id="@+id/list1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".25" >
        </ListView>

        <ListView
            android:id="@+id/list2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".25" >
        </ListView>

        <ListView
            android:id="@+id/list3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".25" >
        </ListView>

        <ListView
            android:id="@+id/list4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".25" >
        </ListView>
    </LinearLayout>
</HorizontalScrollView>

您必须为每个 listView 使用 ListAdapters。第一个 listView 的 OnItemSelect 方法,设置第二个 ListView 的适配器等等。

编辑:测试/示例代码在这里:

private String[] data = { "imran_1664@yahoo.com", "switch2itech@gmail.com" };
    private String[] data2 = { "Lahore", "Karachi", "Islamabad" };
    private ListView listView1, listView2, listView3, listView4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView1 = (ListView) findViewById(R.id.list1);
        listView2 = (ListView) findViewById(R.id.list2);
        listView3 = (ListView) findViewById(R.id.list3);
        listView4 = (ListView) findViewById(R.id.list4);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, data);

        listView1.setAdapter(arrayAdapter);
        listView2.setAdapter(arrayAdapter);
        listView3.setAdapter(arrayAdapter);
        listView4.setAdapter(arrayAdapter);
        listView1.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                ArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(
                        MainActivity.this, android.R.layout.simple_list_item_1,
                        data2);
                listView2.setAdapter(arrayAdapter2);

            }
        });

    }

}

享受...:)

于 2013-10-29T06:45:32.213 回答
0

只需将ListViewsvisibility设为goneor ,以最适合您的方式,然后在您的前面的每个invisible中更改它onItemClickListenerListView

     <ListView
            android:id="@+id/secondaryCategories"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:divider="@null"
            android:dividerHeight="0dp"
            android:visibility="invisible" >   <!-- here -->

然后在你的onItemClick()

public void onItemClick(...)
{
    listView2.setVisibility(View.VISIBLE);
    // other code
}

如果我误解了您想要的内容,请详细说明。

于 2013-10-28T16:35:22.723 回答