我的应用程序的底部部分在每个活动中都是相同的。所以我创建了一个xml文件,并将其包含在活动的每个xml文件中
<include layout="@layout/menu_bottom"/>
然后我创建了一个名为Main Activity的类,它扩展了Activity,我写了这个:
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle b = getIntent().getExtras();
int res = b.getInt("layout", R.layout.home);
setContentView(res);
Button itinerari = (Button) findViewById(R.id.itinerari);
itinerari.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(getApplicationContext(), Itinerari.class);
startActivity(i);
}
});
Button spostamenti = (Button) findViewById(R.id.spostamenti);
spostamenti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(getApplicationContext(), Spostamenti.class);
startActivity(i);
}
});
Button mappa = (Button) findViewById(R.id.mappa);
mappa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(getApplicationContext(), Mappa.class);
startActivity(i);
}
});
Button info = (Button) findViewById(R.id.info);
info.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(getApplicationContext(), Info.class);
startActivity(i);
}
});
}
}
问题是,当我启动应用程序时,我在int res = b.getInt("layout", R.layout.home);
上收到错误。它说问题是NullPointerException
。
然后,如果我手动设置setContentView(R.layout.home)
它可以正常工作
答案 0 :(得分:2)
Bundle b = getIntent().getExtras();
int res = b.getInt("layout", R.layout.home);
b
可能为null(如果意图中没有额外信息)。因此,您应该使用null
值来检查它。
答案 1 :(得分:0)
尝试
Bundle b = getIntent().getExtras();
if(b!=null)
{
int res = b.getInt("layout", R.layout.home);
}
else
{
Log.d("b","Bundle b is null");
}