我是Android开发的新手,我已经搜索并在此论坛中找到了解决方案,但遗憾的是我无法解决导致我的应用程序崩溃的问题。
我有两项活动,我希望从EidCard.java
的用户那里获取意见并将其发送给EidCardFinal.java
。
EidCard.java
的代码是
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);
}
}
来自EidCardFinal.java
的代码
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);
}
}
问题是,当我包含现已注释掉的代码时,单击按钮时应用程序崩溃。请指导我做错了什么。
答案 0 :(得分:0)
你只需要一个意图,PutExtra()函数可以被调用一次以上。完成后看起来像这样:
intent.putExtra("receiver", recipentmessage);
intent.putExtra("sender", sendermessage);
并在EidCardFinal中:
String message1 = intent.getStringExtra("receiver");
String message2 = intent.getStringExtra("sender");
这消除了对intent2的需求。
答案 1 :(得分:0)
在某种程度上,我看到有两个意图指向同一个目标类......并且你没有开始Intent2
..如果你不需要删除intent2。
更改以下代码。
@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);
和EidCardFinal一样
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);
*/
让我知道它是怎么回事。
答案 2 :(得分:0)
可疑,因为在EidCardFinal
你正在使用
TextView receiver = (TextView) findViewById(R.id.textView1);
TextView sender = (TextView) findViewById(R.id.textView2);
在设置contentview之前
setContentView(R.layout.activity_eid_card_final);
所以你EidCardFinal
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);
}
}