Нажмите кнопку, чтобы перейти к ListActivity на Android - PullRequest
0 голосов
/ 27 ноября 2011

У меня есть кнопка, вот код:

Button bHotel = (Button)findViewById(R.id.bHotel);
    bHotel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent intent = new Intent(MainMenu.this, HotelList.class);
            startActivity(intent);

        }
    });

Если я нажму эту кнопку, мое намерение перейдет к:

public class HotelList extends ListActivity{
........    
        }

Мой вопрос, почему мое приложениенеожиданно остановился, но если я изменил расширений на Activity, а не ListActivity, он запустился просто отлично.

В манифесте я зарегистрировал класс HotelList в качестве Activity

<activity android:name=".HotelList" android:label="@string/app_name" />

Любая идея, почему это не такт работа?

Ответы [ 3 ]

1 голос
/ 27 ноября 2011

В случае ListActivity нет необходимости setContentView(R.layout.xml_file_name);.Я думаю, что вы используете в классе HotelList выше линии как setContentView(R.layout.xml_file_name);.Удалите строку, это будет работать.

Из документации Макет экрана

ListActivity имеет макет по умолчанию, который состоит из одного полноэкранного списка в центре экрана.Однако, если вы хотите, вы можете настроить макет экрана, установив свой собственный макет представления с помощью setContentView () в onCreate ().Для этого ваше собственное представление ДОЛЖНО содержать объект ListView с идентификатором «@android: id / list» (или list, если он в коде)

0 голосов
/ 27 ноября 2011

Если вы используете свой собственный макет, ListActivity ожидает ListView внутри макета с идентификатором "@android:id/list".Убедитесь, что у вас есть ListView, объявленный в вашем макете, и что id этого ListView - "@android: id / list"

0 голосов
/ 27 ноября 2011

Использовали ли вы метод setContentView во втором упражнении?Если это так, удалите его, поскольку ваша деятельность расширяет ListActivity, а также как вы заполнили свой список?Я думаю, что есть проблема с тем, как вы объявили идентификатор ListView, он должен быть "@ android: id / list" , иначе он не будет работать.

...