2017-06-18 95 views
0

这是在用户点击时更改背景色的java代码。在设备上运行时,它显示“不幸的应用程序已停止工作”。Android工作室:应用程序崩溃 -

public class MainActivity extends AppCompatActivity { 
    RelativeLayout myLayout=(RelativeLayout)findViewById(R.id.layout1); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myLayout.setBackgroundColor(Color.YELLOW); 
    Button redbtn=(Button)findViewById(R.id.btn1); 
    Button bluebtn=(Button)findViewById(R.id.btn2); 
    redbtn.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        myLayout.setBackgroundColor(Color.RED); 
       } 
      } 
    ); 
    bluebtn.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        myLayout.setBackgroundColor(Color.BLUE); 
       } 
      } 
    ); 
    myLayout.addView(redbtn); myLayout.addView(bluebtn); 
    //setContentView(myLayout); 
} 
+2

邮政堆栈的logcat如果崩溃的痕迹。 –

+0

崩溃的原因是什么?粘贴你的错误日志 – Ashkan

+0

大多数时间在logcat中你可以找到你的错误的上升线和原因 – Ashkan

回答

0
public class MainActivity extends AppCompatActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    RelativeLayout myLayout=(RelativeLayout)findViewById(R.id.layout1); 
    myLayout.setBackgroundColor(Color.YELLOW); 
    Button redbtn=(Button)findViewById(R.id.btn1); 
    Button bluebtn=(Button)findViewById(R.id.btn2); 
    redbtn.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        myLayout.setBackgroundColor(Color.RED); 
       } 
      } 
    ); 
    bluebtn.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        myLayout.setBackgroundColor(Color.BLUE); 
       } 
      } 
    ); 
    myLayout.addView(redbtn); myLayout.addView(bluebtn); 
    //setContentView(myLayout); 
} 
+0

在onCreate()中声明Layout会抛出错误,并说它必须声明为“final”。我试过了它最终也是如此,但错误是一样的。 –

+0

请你可以发布日志猫 –