2

My app is crashing when i run it, can anybody see what's wrong with it? I get this message in the logKat It was running fine until i started messing with UI changing the buttons, TextViews etc.. and changing the enabled and visibility property on them.

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

Here is my 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;
}

}

And here is my 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" />

Jorge Gil
  • 2,805
  • 1
  • 15
  • 22
  • Possible duplicate [http://stackoverflow.com/questions/11446049/error-opening-trace-file-no-such-file-or-directory-2](http://stackoverflow.com/questions/11446049/error-opening-trace-file-no-such-file-or-directory-2). – patterned Dec 19 '13 at 01:50
  • I did saw that but its not giving results. I think the problem is in the code but i just can't see what i'm doing wrong. – Jorge Gil Dec 19 '13 at 01:53

1 Answers1

0

Try this. You don't need to define your buttons and text fields every time.

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;
 }
Midhun Sivaraj
  • 493
  • 5
  • 13
  • But if i don't define them in each button, then i get the error that says i cant use variables from another method – Jorge Gil Dec 19 '13 at 04:06