I am new to android development, i have searched and found the solution in this forum but unfortunately i am unable to sort out the problem that is causing my application to crash.

I have two activities, I want to take input from user in EidCard.java and send it to EidCardFinal.java.

Code for EidCard.java is

public class EidCard extends Activity {

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

    public void onNextButtonClick(View view) {
         Intent intent = new Intent(this, EidCardFinal.class);
        Intent intent2 = new Intent(this, EidCardFinal.class);
        EditText editText1 = (EditText) findViewById(R.id.recipentData);
        EditText editText2 = (EditText) findViewById(R.id.senderData);
        String recipentmessage = editText1.getText().toString();
        String sendermessage = editText2.getText().toString();
        intent.putExtra("receiver", recipentmessage);
        intent2.putExtra("sender", sendermessage);
        startActivity(intent);
    }
}

and code from EidCardFinal.java is

public class EidCardFinal extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * Intent intent = getIntent(); 
                 * Intent intent2 = getIntent(); 
         * String message1 = intent.getStringExtra("receiver"); 
         * String message2 = intent2.getStringExtra("sender"); 
         * TextView receiver = (TextView) findViewById(R.id.textView1); 
         * receiver.setText(message1); 
         * TextView sender = (TextView) findViewById(R.id.textView2);
         * sender.setText(message2);
         */
        setContentView(R.layout.activity_eid_card_final);

    }

}

The problem is when I include code which is now commented out, then the app crashes when the button is clicked. Please guide me what i am doing wrong.

有帮助吗?

解决方案

To the extent I see there are two intents pointing to same target class..and you are not starting Intent2.. if you don't require remove intent2.

Change code like below.

@Eidcard class

public void onNextButtonClick(View view) {
     Intent intent = new Intent(this, EidCardFinal.class);

    EditText editText1 = (EditText) findViewById(R.id.recipentData);
    EditText editText2 = (EditText) findViewById(R.id.senderData);
    String recipentmessage = editText1.getText().toString();
    String sendermessage = editText2.getText().toString();
    intent.putExtra("receiver", recipentmessage);
    intent.putExtra("sender", sendermessage);
    startActivity(intent);

And EidCardFinal as

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_eid_card_final);

 /**
     * Intent intent = getIntent(); 

     * String message1 = intent.getStringExtra("receiver"); 
     * String message2 = intent.getStringExtra("sender"); 
     * TextView receiver = (TextView) findViewById(R.id.textView1); 
     * receiver.setText(message1); 
     * TextView sender = (TextView) findViewById(R.id.textView2);
     * sender.setText(message2);
     */

let me know how it goes.

其他提示

You only need one intent, the PutExtra() function can be called more then once. This would look like this when done:

intent.putExtra("receiver", recipentmessage);
intent.putExtra("sender", sendermessage);

and in the EidCardFinal:

String message1 = intent.getStringExtra("receiver"); 
String message2 = intent.getStringExtra("sender");

This eliminates the need for intent2.

Probebly because in EidCardFinal you are using

TextView receiver = (TextView) findViewById(R.id.textView1);  
TextView sender = (TextView) findViewById(R.id.textView2);

before setting contentview

 setContentView(R.layout.activity_eid_card_final);

SO YOUR EidCardFinal would be

    public class EidCardFinal extends Activity {

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

      Intent intent = getIntent(); 
      Intent intent2 = getIntent(); 
      String message1 = intent.getStringExtra("receiver"); 
      String message2 = intent2.getStringExtra("sender"); 
      TextView receiver = (TextView) findViewById(R.id.textView1); 
      receiver.setText(message1); 
      TextView sender = (TextView) findViewById(R.id.textView2);
      sender.setText(message2);

}
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top