2017-06-18 119 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

請你可以發佈日誌貓 –