Как использовать ListView и ViewFlipper для навигации пользователя в приложении Android? - PullRequest
2 голосов
/ 02 мая 2010

Я хочу настроить навигатор для моего приложения.

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

Вопрос в том, как это сделать, я могу использовать ViewFlipper только для перехода к следующему или предыдущему экрану, как управлять этими дочерними представлениями здесь? Как поместить их в мой файл макета XML?

1 Ответ

3 голосов
/ 02 мая 2010

Здесь следует псевдо-способ сделать это.

// В OnCreate добавьте прослушиватель щелчков к вашему списку, чтобы перевернуть вид на следующий.

viewflipper = (ViewFlipper) findViewById(R.id.viewflipper);
listview = (ListView) findViewById(R.id.listview);


listview.setOnItemClickListener(new OnItemClickListener(){
  public void onItemClick(AdapterView<?> a, View v, int position, long id) {
     viewflipper.showNext();

});

// Переопределить onKeyDown в вашем Activty для обработки нажатия кнопки «назад».

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if(viewflipper.getVisibleChild() != 0){
           viewflipper.showPrevious();
           return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

// xml для видоискателя с просмотром списка как «первая страница» и простым просмотром текста как «вторая страница»

<ViewFlipper android:id="@+id/viewflipper" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        > 
        <ListView android:id="@+id/listview" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
        /> 
        <TextView android:id="@+id/secondview" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="This is the second view" 
        /> 
</ViewFlipper> 
...