我有一个按钮,这是代码:
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 android:name=".HotelList" android:label="@string/app_name" />
知道它为什么不起作用?
答案 0 :(得分:1)
如果是ListActivity,则无需setContentView(R.layout.xml_file_name);
。我认为你在上面的HotelList类中用作setContentView(R.layout.xml_file_name);
。删除它将起作用的行。
来自documentation 屏幕布局
ListActivity具有默认布局,该布局由屏幕中心的单个全屏列表组成。但是,如果需要,可以通过在onCreate()中使用setContentView()设置自己的视图布局来自定义屏幕布局。要做到这一点,你自己的视图必须包含一个带有id&#34; @android:id / list&#34;的ListView对象。 (或列出代码中的代码)
答案 1 :(得分:0)
您是否在第二个活动中使用了setContentView方法?如果是这样,因为您的活动扩展了ListActivity,那么您也是如何填充列表的呢?我认为你声明ListView的id的方式存在问题,它必须是“@ android:id / list”否则它将无效。
答案 2 :(得分:0)
如果您使用自己的布局,ListActivity需要布局内的ID为"@android:id/list"
的ListView。确保在布局中声明了ListView,并且该ListView的id为“@android:id / list”