java - 如何将一个活动的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 构造函数中传递它们。
解决方案
要从 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”接收
推荐阅读
- javascript - p5.js 中的 setup() 函数是如何工作的?
- c - 如何识别图像来自点阵打印机
- php - 如何在 PHP 中使用 foreach 循环解决“通知:数组到字符串转换”错误?
- hibernate - 将 Hibernate 3.3.0 迁移到 5.2
- javascript - 使用新版本的 Firebase 不断收到 Uncaught TypeError
- httpie - 如何使用httpie发送未命名的JSON数组
- r - 如何使用 R 中的 plot_grid() 函数绘制多个 seqplots(TraMineR 包)?
- javascript - 这个简单的测试有什么问题?
- swagger - 如何用值描述模式对象?
- python - 需要帮助调试高频数据的kafka延迟