2013-12-19 29 views
2

當我運行它時,我的應用程序崩潰了,有人可以看到它有什麼問題嗎? 我在logKat中得到這條消息 它運行良好,直到我開始搞亂改變按鈕,TextView等的UI。並且改變了它們的啓用和可見性屬性。打開跟蹤文件時出錯:沒有這樣的文件或目錄(2),解決方案?

12-18 19:08:16.634: E/Trace(636): error opening trace file: No such file or directory (2) 

這裏是我的MainActivity.java

package com.example.capitales.del.mundo; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 


    public class MainActivity extends Activity { 

public int cuenta = 0; 

public String[] mPaises = { 
     "Canada", 
     "Estados Unidos", 
     "Mexico", 
     "Guatemala", 
     "Belice"}; 

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

    Button startbutton = (Button) findViewById(R.id.button1); 
    Button checkbutton = (Button) findViewById(R.id.button2); 
    Button nextbutton = (Button) findViewById(R.id.button3); 

    startbutton.setOnClickListener(new View.OnClickListener() { 

     Button startbutton = (Button) findViewById(R.id.button1); 
     Button checkbutton = (Button) findViewById(R.id.button2); 
     Button nextbutton = (Button) findViewById(R.id.button3); 
     TextView questionlabel = (TextView) findViewById(R.id.textView1); 

     @Override 
     public void onClick(View arg0) { 

      //start button 
    questionlabel.setText(mPaises[cuenta]); 
    startbutton.setVisibility(View.GONE); 
    checkbutton.setVisibility(0); 
    nextbutton.setVisibility(0); 
    checkbutton.setEnabled(true); 
     }}); 

    checkbutton.setOnClickListener(new View.OnClickListener() { 

     TextView resultadolabel = (TextView) findViewById(R.id.textView2); 
     EditText inputbox = (EditText) findViewById(R.id.editText1); 
     Button checkbutton = (Button) findViewById(R.id.button2); 
     Button nextbutton = (Button) findViewById(R.id.button3); 

     @Override 
     public void onClick(View v) { 
      // check button 

      checkbutton.setEnabled(false); 
      nextbutton.setEnabled(true); 

      if (cuenta == 0) { 
       if (inputbox.getText().toString().equals("Ottawa")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Ottawa");}} 
      else if (cuenta == 1) { 
       if (inputbox.getText().toString().equals("Washington")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Washington");}} 
      else if (cuenta == 2) { 
       if (inputbox.getText().toString().equals("Mexico")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Mexico");}} 
      else if (cuenta == 3) { 
       if (inputbox.getText().toString().equals("Guatemala")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Guatemala");}} 
      else if (cuenta == 4) { 
       if (inputbox.getText().toString().equals("Belmopan")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Belmoopan");}} 
     } 
    }); 

    nextbutton.setOnClickListener(new View.OnClickListener() { 

     TextView questionlabel = (TextView) findViewById(R.id.textView1); 
     TextView resultadolabel = (TextView) findViewById(R.id.textView2); 
     EditText inputbox = (EditText) findViewById(R.id.editText1); 
     Button checkbutton = (Button) findViewById(R.id.button2); 
     Button nextbutton = (Button) findViewById(R.id.button3); 

     @Override 
     public void onClick(View v) { 
      // LO QUE HACE EL NEXT BUTTON 
      nextbutton.setEnabled(false); 
      checkbutton.setEnabled(true); 
      cuenta = cuenta + 1; 
      questionlabel.setText(mPaises[cuenta]); 
      resultadolabel.setText(""); 
      inputbox.setText(""); 



     } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

}

這裏是我的activity_main.xml中

<RelativeLayout 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" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="119dp" 
    android:text="@string/Start" 
    android:textSize="30sp" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:ems="10" 
    android:inputType="text" 
    android:visibility="invisible" > 

    <requestFocus /> 
</EditText> 

<Button 
    android:id="@+id/button3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/editText1" 
    android:layout_alignParentLeft="true" 
    android:enabled="false" 
    android:text="@string/next" 
    android:textSize="30sp" 
    android:visibility="invisible" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/button3" 
    android:layout_alignParentLeft="true" 
    android:enabled="false" 
    android:text="@string/check" 
    android:textSize="30sp" 
    android:visibility="invisible" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/button2" 
    android:layout_alignParentLeft="true" 
    android:text="@string/mensaje" 
    android:textSize="35sp" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView2" 
    android:layout_alignParentLeft="true" 
    android:text="@string/pais" 
    android:textSize="35sp" /> 

+0

可能重複[http://stackoverflow.com/questions/11446049/error-opening-trace-file-no-such-file-or-directory-2](http://stackoverflow.com/問題/ 11446049 /差錯開跟蹤文件沒有這樣-文件或目錄-2)。 – patterned

+0

我確實看到了,但沒有給出結果。我認爲問題出在代碼中,但我不明白我做錯了什麼。 –

回答

0

試試這個。您無需每次定義按鈕和文本字段。

package com.example.capitales.del.mundo; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 


public class MainActivity extends Activity { 

    public int cuenta = 0; 

    public String[] mPaises = { 
     "Canada", 
     "Estados Unidos", 
     "Mexico", 
     "Guatemala", 
     "Belice"}; 

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

    Button startbutton = (Button) findViewById(R.id.button1); 
    Button checkbutton = (Button) findViewById(R.id.button2); 
    Button nextbutton = (Button) findViewById(R.id.button3); 
    TextView questionlabel = (TextView) findViewById(R.id.textView1); 
    TextView resultadolabel = (TextView) findViewById(R.id.textView2); 
    EditText inputbox = (EditText) findViewById(R.id.editText1); 

    startbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
     public void onClick(View arg0) { 

      //start button 
    questionlabel.setText(mPaises[cuenta]); 
    startbutton.setVisibility(View.GONE); 
    checkbutton.setVisibility(0); 
    nextbutton.setVisibility(0); 
    checkbutton.setEnabled(true); 
     }}); 

    checkbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
     public void onClick(View v) { 
      // check button 

      checkbutton.setEnabled(false); 
      nextbutton.setEnabled(true); 

      if (cuenta == 0) { 
       if (inputbox.getText().toString().equals("Ottawa")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Ottawa");}} 
      else if (cuenta == 1) { 
       if (inputbox.getText().toString().equals("Washington")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Washington");}} 
      else if (cuenta == 2) { 
       if (inputbox.getText().toString().equals("Mexico")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Mexico");}} 
      else if (cuenta == 3) { 
       if (inputbox.getText().toString().equals("Guatemala")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Guatemala");}} 
      else if (cuenta == 4) { 
       if (inputbox.getText().toString().equals("Belmopan")) { 
        resultadolabel.setText("Correcto");} 
       else {resultadolabel.setText("Respuesta correcta: Belmoopan");}} 
     } 
    }); 

    nextbutton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // LO QUE HACE EL NEXT BUTTON 
      nextbutton.setEnabled(false); 
      checkbutton.setEnabled(true); 
      cuenta = cuenta + 1; 
      questionlabel.setText(mPaises[cuenta]); 
      resultadolabel.setText(""); 
      inputbox.setText(""); 



     } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 
+0

但是,如果我沒有在每個按鈕中定義它們,那麼我得到的錯誤說我不能使用其他方法的變量 –

+0

我認爲你正在完成onCreate方法的所有工作。 – Midhun

相關問題