0

I am a beginner android developer, and I have been stuck with this problem. Activity 1-: I am starting another activity from a button, and passing some data on to it. Activity 2-: I am doing something and passing some data into the 1st activity.

The CHEAT ACTIVITY DOES NOT OPEN, while it sends back the value I want. While I cannot see the activity, but am getting the result back.

The Full Codes:

MainActivity.java

 public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CODE = 1 ;
    private Button button;
    private Button button2;
    private Button button3;
    private Button button4;
    private Button button5;
    private TextView textView;
    private TextView textView3;
    int i = 0;
    int n;
    int flag = 0;
    int k;
    int random;
    private final String CHEAT_KEY="CHEAT_KEY";


      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);
        button4=(Button) findViewById(R.id.button4);
        button5=(Button) findViewById(R.id.button5);
        textView = (TextView) findViewById(R.id.textView);





        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            if (k == 0)
           Toast.makeText(MainActivity.this, "Incorrect",           Toast.LENGTH_SHORT).show();
                else
                    Toast.makeText(MainActivity.this, "Correct", Toast.LENGTH_SHORT).show();

            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                k = isprime();
                if (k == 0)
                    Toast.makeText(MainActivity.this, "Correct", Toast.LENGTH_SHORT).show();
                else
                    Toast.makeText(MainActivity.this, "Incorrect", Toast.LENGTH_SHORT).show();
            }
        });

        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                n = looping();
//                String numb = String.valueOf(n);
                random = looping();
                k = IsPrime(random);
                String question = "Is it Prime-" + random;
                textView.setText(question);
            }
        });

        button5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,CheatActivity.class);
                intent.putExtra("CHEAT_KEY",k);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode==RESULT_OK && requestCode== REQUEST_CODE){

            if (data.hasExtra("MY_DATA")){
                Toast.makeText(this, data.getExtras().getString("MY_DATA"), Toast.LENGTH_SHORT).show();
            }

        }
    }



    public int looping() {
        Random r = new Random();
//        for(i=1;i<=100;i++){
//            n= r.nextInt(100 - 1 + 1) + 1;
//            return n;
//        }
        return r.nextInt(100 - 1 + 1) + 1;
    }



    int IsPrime(int number) {
        if (number <= 1)
            return 0;
        int i;
        for (i=2; i*i<=number; i++) {
            if (number % i == 0)
                return 0;
        }
        return 1;
    }

    public void exit(View view) {
        finish();
        System.exit(0);
    }
}

CheatActivity.java

public class CheatActivity extends AppCompatActivity {


    TextView textView2;
    private String answer;
    private final String MY_DATA="MY_DATA";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cheat);

        textView2=(TextView) findViewById(R.id.textView2);
        int get=getIntent().getExtras().getInt("CHEAT_KEY");

        if(get==1)
        {
            textView2.setText("TRUE");

        }
        if (get==0)
        {
            textView2.setText("FALSE");

        }

        Intent data=new Intent();
        data.putExtra("MY_DATA","User has cheated!");
        setResult(RESULT_OK, data);
        finish();
    }
}
Sayan
  • 1
  • 1
  • What is the exact problem ? – Mehdi Jahed Manesh Sep 17 '16 at 17:19
  • The CHEAT ACTIVITY DOES NOT OPEN, while it sends back the value I want. While I cannot see the activity, but am getting the result back. – Sayan Sep 17 '16 at 17:20
  • Try String stringExtraValue = intent.getStringExtra("key"); and int intExtraValue = intent.getIntExtra("key",0); , instead of intent.getExtras(...) and when you finish your cheatActivity , your activity is being popped . So you can not access to it after finishing . – Mehdi Jahed Manesh Sep 17 '16 at 17:28
  • @Sayan the CheatActivity does open, but you're calling `finish()` in its onCreate method, so it finishes itself quickly after performing what's in onCreate. – gizembrh Sep 17 '16 at 17:29
  • @gizembrh thanks..it worked!! Just the minor change, and it is working smoothly! – Sayan Sep 18 '16 at 19:09

0 Answers0