2013-11-27 39 views
0

我想通过更改主要活动Java代码来更改背景照片,这里是我写的。当我在我的银河S3运行应用程序,当我按一下按钮,我的手机被卡住,并退出该应用程序Android开发设置背景

这是XML代码:

<RelativeLayout android:id="@+id/helpLayout" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@drawable/bgr" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView2" 
     android:textStyle="bold" 
     android:textColor="#FF0000" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/How" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView2" 
     android:layout_centerVertical="true" 
     android:onClick="onRadioButtonClicked" 
     android:text="Click Me :)" /> 

    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView2" 
     android:layout_below="@+id/textView2" 
     android:layout_marginTop="26dp" > 

     <RadioButton 
      android:id="@+id/radio0" 
      android:textColor="#FFFF00" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      android:text="Happy" /> 

     <RadioButton 
      android:id="@+id/radio1" 
      android:textColor="#000000" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Sad" /> 

     <RadioButton 
      android:id="@+id/radio2" 
      android:textColor="#FF0000" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="In Love" /> 

     <RadioButton 
      android:id="@+id/radio3" 
      android:textColor="#808080" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Missing" /> 
    </RadioGroup> 

</RelativeLayout> 

,这是Java代码:

package com.example.anny; 
import java.util.Random; 
import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Color; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.LinearLayout; 
import android.widget.RadioButton; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
    public void onRadioButtonClicked(View view) { 
     LinearLayout ll = (LinearLayout) findViewById(R.layout.activity_main); 
     ll.setBackgroundResource(R.drawable.p1); 

    } 
} 

回答

0

与此一改变你的onRadioButtonClicked代码,那么你的问题就解决了definetly:

RelativeLayout ll = (RelativeLayout) findViewById(R.id.helpLayout); 
    ll.setBackgroundResource(R.drawable.p1); 
1

在你onRadioButtonclicked你的代码是:

所有的
LinearLayout ll = (LinearLayout) findViewById(R.layout.activity_main);//parameter is layout instead of Id. 
ll.setBackgroundResource(R.drawable.p1); 

首先,你不必在你的XML文件LinearLayout。该容器是RelativeLayout。其次,您提供了一个布局参考,而不是ID。在Android中,我们提供ID作为R.id.IdName。您的XML代码中的RelativeLayoutIDhelpLayout。所以,代码应该是:

RelativeLayout ll = (RelativeLayout) findViewById(R.id.helpLayout); 
+0

感谢我的朋友,我知道现在是如何工作的?问题就迎刃而解了 –

+0

@如果它帮助你user3042963你必须接受一个答案。 – Naddy