在尝试了很多在这里找到的东西之后,没有任何效果。
为了简单起见:
我有一个带有按钮的主要 Activity 。
我有一个“子” Activity ,其中包含2 个文本字段 和一个按钮。
当我点击主 Activity 按钮时,子 Activity 打开(有效)。然后我将一些文本放入两个文本字段,当我单击按钮时,我希望将文本字段中的数据传输到主要 Activity ,我无法让它正常工作。
这是我的主要 Activity 代码
public class MainMenu extends AppCompatActivity {
Button btnAddBib;
public final static int REQUEST_CODE_B = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
btnAddBib = (Button)findViewById(R.id.btnAddBib);
btnAddBib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), MainActivity.class);
startActivityForResult(myIntent,REQUEST_CODE_B);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case REQUEST_CODE_B:
String Qte = data.getStringExtra("qte");
String Time = data.getStringExtra("time");
if (Qte != null && !Qte.isEmpty() && Time != null && !Time.isEmpty()) {
final SQLiteDatabase dbBib;
dbBib = openOrCreateDatabase("bibi", Context.MODE_PRIVATE, null);
dbBib.execSQL("CREATE TABLE IF NOT EXISTS bibi(time VARCHAR, qte VARCHAR);");
dbBib.execSQL("INSERT INTO bibi VALUES ('" + Time + "','" +
Qte + "')");
Toast.makeText(getApplicationContext(), "Bibi bien enregistré",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Fail get extraData",
Toast.LENGTH_LONG).show();
}
break;
}
}
和子 Activity 代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ajouter_bibi);
btnValideBib = (Button)findViewById(R.id.btnValideBib);
btnValideBib.setBackgroundResource(R.drawable.logo_biberon);
txtTime = (EditText)findViewById(R.id.txtTime);
txtQte = (EditText)findViewById(R.id.txtQte);
Calendar c = Calendar.getInstance();
int hh = c.get(Calendar.HOUR_OF_DAY);
int mm = c.get(Calendar.MINUTE);
txtTime.setText(hh + ":" + mm);
btnValideBib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent backIntent = new Intent();
backIntent.putExtra("qte", txtQte.getText());
backIntent.putExtra("time", txtTime.getText());
setResult(RESULT_OK, backIntent);
finish();
}
});
问题:
在主要 Activity 中,当我想取回我的额外字符串时,我有空字段。
String Qte = data.getStringExtra("qte");
String Time = data.getStringExtra("time");
有什么问题吗?
谢谢!
最佳答案
更改代码:
backIntent.putExtra("qte", txtQte.getText());
backIntent.putExtra("time", txtTime.getText());
到下面的代码:
backIntent.putExtra("qte", txtQte.getText().toString()); //append .toString() method
backIntent.putExtra("time", txtTime.getText().toString());
关于java - 将数据从子 Activity 发送到主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32539384/