Использование виджета «Галерея» с данными, не относящимися к изображению - PullRequest
1 голос
/ 11 марта 2011

Я хочу отображать данные из курсора в области, которую пользователь может переворачивать назад и вперед между одним или несколькими экземплярами представления. Я пытаюсь использовать виджет «Галерея», поскольку он уже имеет поддержку адаптера и будет автоматически получать уведомления об обновлениях от поставщика контента. Я посмотрел на использование ViewFlipper, но сначала перешел в галерею из-за поддержки адаптера. Если я не могу заставить его работать, я в конечном итоге попробую ViewFlipper и зарегистрируюсь в качестве наблюдателя контента на курсоре.

То, что у меня сейчас есть, выглядит так: должно работать, и вроде как, за исключением того, что я ничего не вижу на экране. У действия, в котором находится представление Галерея, есть меню параметров. Когда я нажимаю кнопку меню и отображается меню занятия, появляется текст от курсора в Галерее. Когда меню скрыто, содержимое галереи снова исчезает. Кроме того, проводя пальцем влево или вправо по Галерее, я вижу текст, который должен отображаться, как только он достигает дальнего края представления.

Макет моей активности:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <Gallery android:id="@+id/host_gallery"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center|fill"
    />

</LinearLayout>

Макет содержимого моей галереи:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceLarge"
    />

</LinearLayout>

Создание моей активности:

private Gallery mGallery;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.host);

    mGallery = (Gallery) findViewById(R.id.host_gallery);

    Cursor c = managedQuery(Host.CONTENT_URI, null, null, null, null);
    mGallery.setAdapter(new SimpleCursorAdapter(this, R.layout.host_item, c,
        new String[] { "name" },
        new int[] { R.id.name }));
}

Кто-нибудь может увидеть, что я здесь делаю неправильно, или Галерея просто не сделает то, что я хочу?

...