2017-06-18 4 views
0

Dies ist der Java-Code zum Ändern der Hintergrundfarbe auf Benutzer klicken.Auf dem Gerät läuft es sagt "Leider App funktioniert nicht mehr".Android Studio: App Absturz -

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

Schreiben Sie die Stack-Trace von logcat wenn seine Krachen. –

+0

Was ist der Grund des Absturzes? Fügen Sie Ihr Fehlerprotokoll – Ashkan

+0

die meiste Zeit in logcat können Sie die Zeile finden, dass Ihr Fehler steigen und der Grund dafür – Ashkan

Antwort

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

Deklaration Layout in onCreate() löst Fehler und sagt, dass es als "final" deklariert werden muss. Ich habe ausprobiert Es ist auch endgültig, aber der Fehler ist der gleiche. –

+0

kannst du bitte die log cat posten –

Verwandte Themen