所以基本上我正在尝试将EditText字符串传递给同一个Activity中的另一个片段。然后将该数据传递给另一个Activity,具体取决于按下的按钮。我的问题是应用程序工作正常,但我只是没有看到正在创建的字符串。我试图使用textview来检查它是否有效,当我通过第一个数据,但没有显示。
我只想将字符串传递给另一个片段,然后根据按钮按下它们在任何一个Activity上传递它。
这是我的代码
将我的数据传递到下一个片段并转到片段。
mNextBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), ItemStorageFragment.class);
intent.putExtra("itemName", addName.getText().toString());
((AddInventoryActivity)getActivity()).ToExpiration(null);
}
});
从我的First Fragment中抓取数据
Intent intent = getActivity().getIntent();
value = intent.getStringExtra("itemName");
然后将其发送到活动
mToFreezer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent in = new Intent(getActivity(), FreezerActivity.class);
in.putExtra("itemNameToFreezer", value);
startActivity(in);
}
});
然后将其添加到我的RecyclerView
Intent i = getIntent();
String string = i.getStringExtra("itemNameToFreezer");
mDataset.add(string);
mAdapter.notifyDataSetChanged();
答案 0 :(得分:0)
Intent
个附加功能可以在活动之间共享数据,但您不能像在代码中那样直接将它们用于Fragments。我想,你是初学者,所以我建议你在这里深入了解Intents:Android - Intents and Filters
有几种方法可以在Activities
和Fragments
之间传递数据,其中最常见的是passing arguments。但是,在您的情况下,我建议您使用SharedPreferences
。您可以在String
或Fragment
内的任意位置存储Activity
数据,然后通过以下简单步骤轻松将其取出:
将数据输入SharedPreferences:
SharedPreferences.Editor editor = getSharedPreferences("YourPrefsFile", MODE_PRIVATE).edit();
editor.putString("name", "Elena");
editor.putInt("idName", 12);
editor.apply();
从SharedPreferences获取数据:
SharedPreferences prefs = getSharedPreferences("YourPrefsFile", MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
String name = prefs.getString("name", "");
int idName = prefs.getInt("idName", 0);
}