java - 将数据从子 Activity 发送到主要 Activity

标签 java android android-intent android-activity

在尝试了很多在这里找到的东西之后,没有任何效果。

为了简单起见:

我有一个带有按钮的主要 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/

相关文章:

android - 允许用户为图像选择相机或图库

android - 通过 preferences.xml 中的 Intent 打开应用程序设置

java - 以下代码片段不会产生预期结果

java - 错误 : java. util.AbstractList$Itr 无法转换为 ex2.Tuple

java - 如何解决 "itemTag cannot be resolved or is not a field"?

android - 在用户不知情的情况下使用前置摄像头拍摄照片

android - 启动画面不首先显示在应用程序上

java - 带 getter 的公共(public)静态最终变量

java - 水平翻转 View - 如何?

java - mp3 播放几次后就停止播放?