首页 > 解决方案 > 如何将一个活动的edittext字符串传递给另一个活动的方法?

问题描述

我有 2 个 EditText,我想复制这些 EditText 的字符串并在另一个活动的方法中使用它们。

我正在制作一个应用程序,它在两个 EditTexts 中键入一些详细信息,并有一个按钮来复制这两个 EditTexts 的字符串并在另一个 Activity 的 RecyclerView 中粘贴或使用它。

我尝试了 Intent 和 Bundle 方法,但无法解决它,实际上很难安排代码的结构。

这是我想要传递的活动:

btn_save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (etTitle.length() != 0 || etDes.length() != 0){
                addData();
            }else {
                Toast.makeText(DataInput.this, "Please Add Data !", Toast.LENGTH_SHORT).show();
            }
        }
    });
}

private void addData() {
    String titled = etTitle.getText().toString();
    String desed = etDes.getText().toString();
    Intent inte = new Intent();
    Bundle bund = new Bundle();
    bund.putString("title", titled);
    bund.putString("des", desed);
    inte.putExtras(bund);
    startActivity(inte);
}

这是我想收到的活动:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);

    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(), DataInput.class);
            startActivity(intent);
        }
    });

    recyclerView = findViewById(R.id.rv);

    dAdapter = new DataAdapter(dataList);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setAdapter(dAdapter);
}

public void sendData() {
    Bundle bundle = getIntent().getExtras();
    String addedTitle = bundle.getString("title");
    String addedDes = bundle.getString("dec");
    Data data = new Data(addedTitle, addedDes);
    dataList.add(data);
    dAdapter.notifyDataSetChanged();
}

我想要的只是将意图和捆绑从第一个 Activity 中的 addData 方法传递到第二个 Activity 中的 sendData 方法,这样我就可以使用字符串在 Data 构造函数中传递它们。

标签: javaandroid

解决方案


要从 EditText 中检索文本,请使用

String value = editText.getText().toString();

然后通过意图或捆绑传递键值对

Intent in = new Intent(Activity1.this, Activity2.class);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
in.putExtra("key", value);
startActivity(in);

收到把它放在新的活动中

String string_name = getIntent().getExtras().getString("key");

更新:密钥不匹配,您将密钥作为“des”发送并作为“dec”接收


推荐阅读