Может ли ScrollView работать с интерактивным TableLayout? - PullRequest
0 голосов
/ 04 июля 2011

Я пытаюсь создать список результатов поиска, и его нужно прокручивать, но я также должен иметь возможность щелкнуть по результату, чтобы перейти к другому виду деятельности.Вот мой код, любая помощь приветствуется.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TableLayout android:id="@+id/resultsLayout"
    android:layout_height="match_parent" android:layout_width="fill_parent"
    android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"
    android:scrollbars="vertical">
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="twoLine" android:id="@+id/tlli1">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="MUDD PUPPIES SELF SERVE DOG " android:ellipsize="none"
                android:scrollHorizontally="false"/>
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="20091345" />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli2">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="MUDD, ANGELA G " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="2008022979 3383 6" />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli3">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="GRABAU, ANDREW S " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="2011003340 3771 110 " />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli4">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="S M E T INC " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="1987016628 652 590 " />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli5">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="A GOOD START INC " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="20040649" />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli6">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="AGUILAR, JOHN D " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="2001015672 1747 306 " />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli7">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="THEIS, ARLENE C " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="1998020639 1439 544 " />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli8">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="R-E INVESTMENT CO " />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="1985005167 530 925 " />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli9">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="Man" />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Machine" />
        </TwoLineListItem>
    </TableRow>
    <TableRow>
        <TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:mode="oneLine" android:id="@+id/tlli10">
            <TextView android:id="@android:id/text1" android:gravity="left"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="Man" />
            <TextView android:id="@android:id/text2" android:gravity="right"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_below="@android:id/text1" android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Machine" />
        </TwoLineListItem>
    </TableRow>
</TableLayout>

1 Ответ

0 голосов
/ 04 июля 2011

Вам следует подумать об использовании ListView для такого рода задач, а не о создании собственного ScrollView.

Edit:

Я думаю, что вы подходите к этому неправильно. Вы жестко кодируете результаты поискового запроса в XML? Это говорит мне о том, что вы вообще не выполняете поисковый запрос.

То, что вы должны делать, это хранить ваши данные в массиве или базе данных, а затем запрашивать их соответствующим образом и передавать их в ListActivity через ArrayAdapter или CursorAdapter. Установка функции onListItemClicked() затем позволит тривиально отправить намерение с соответствующими данными в вашу деятельность.

Однако, учитывая, что вы выглядите так, как будто вы очень далеки от этого более оптимального решения (хотя я очень рекомендую вам его изучить); вам придется установить множество вещей вручную.

В вашей Деятельности, которая использует макет ScrollView, вам необходимо определить несколько OnClickListener и связать их с соответствующим элементом в Scrollview. Так что-то вроде:

TwoLineListItem tli1 = (TwoLineListItem) findViewById(R.id.tlli1);
tli1.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {
    Intent intent = new Intent(getBaseContext(), YourResultDetailActivity.class);
    intent.putExtra("foo", 1);
    startActivity(intent);
  }
});

И повторяется для каждого из ваших десяти предметов. YourResultDetailActivity должен затем получить дополнительные данные из намерения и использовать их для отображения правильных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...