【发布时间】:2014-11-11 12:52:49
【问题描述】:
我想以编程方式设置布局背景,具体取决于要在我的应用程序中播放的歌曲的类型。 我试过这个:
public class AnswerActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e("TRANSITION", "TRANSITIONED TO ANSWER ACTIVITY");
super.onCreate(savedInstanceState);
setContentView(R.layout.play);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.hide();
LinearLayout root = (LinearLayout) findViewById(R.id.ctr1);
Bundle data = getIntent().getExtras();
if(data.getString("genre").equals("rock")){
root.setBackgroundResource(R.drawable.wprock);
}
else if(data.getString("genre").equals("pop")){
root.setBackgroundResource(R.drawable.wppop);
}
else if(data.getString("genre").equals("hiphop")){
root.setBackgroundResource(R.drawable.wphiphop);
}
}
但它不起作用,它会在 root.setBackgroundResource 行中抛出一个空指针异常,只要其中任何一个发生。 有任何想法吗? 提前致谢 编辑:我确实有 R.drawable.wprock/pop/hiphop,而且我排除了这种可能性,因为我尝试使用颜色而不是 setBackgroundColor 方法,我有同样的例外。
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#1d1d1d" >
<ImageView
android:id="@+id/res"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginTop="130dp"
android:onClick="go"
android:background="@drawable/playbtn" />
</LinearLayout>
【问题讨论】:
-
发布 xml-------
-
您动态创建了
LinearLayout,但是您在哪里将此布局添加到您的mainlayout?
标签: android android-intent background bundle