java - 为什么我在 dato2 中看到“null”以返回我的第二个活动?
问题描述
我正在尝试练习在那里启动活动以将值传入和传出,但我不明白如何将这个返回值缺陷作为字符串解决。
这是我需要返回字符串的第二个活动,但我在 toast 中看到“null”。
public class Activity1 extends Activity {
public String stringa = "Ciao";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
Intent intent = getIntent();
Log.d("GETINTENT", "prende dato1");
int i = 3;
int dato1 = intent.getIntExtra("x", i);
Toast.makeText(getApplicationContext(), "Intero Main: "+ dato1, Toast.LENGTH_LONG).show();
setReturnIntent();
}
public void setReturnIntent() {
Intent i = new Intent(this,MainActivity.class);
i.putExtra("STRINGA",stringa);
setResult(RESULT_OK, i);
Log.d("LANCIO","lancio con setResult");
finish();
}
这是我在 Android Studio 上的主要代码,当我放一个 int 并在 toast 中看到时
public class MainActivity extends Activity {
public int x = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void lanciaActivity(View v) {
Intent i = new Intent(this,Activity1.class);
i.putExtra("x", x);
startActivityForResult(i,0);
Log.d("LANCIOST","Lancio con startActivityForR");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != 0) return;
if (resultCode != Activity.RESULT_OK) return;
if (data == null) return;
Intent intent = getIntent();
Log.d("GETSTRING", "Preso dato2");
String dato2 = intent.getStringExtra("STRINGA");
Toast.makeText(getApplicationContext(), "Stringa: "+ dato2, Toast.LENGTH_LONG).show();
}
}
解决方案
我看到您使用 inten.getStringExtra() 获取数据的第一个活动代码使用data.getStringExtra
将数据从第二个活动获取到 activityResult..
推荐阅读
- python - 在 Python 中解析来自 json 文件的输入
- ruby - 使用 Rails 应用程序通过谷歌云语音将视频转换为文本(成绩单)
- json - SOLR post json 文件 默认字段类型
- ios - 如何将单元格数据放入单元格类而不是 VC 类?,iOS,Swift
- python - 在开发模式下安装的导入包
- javascript - Angular 5 - 我应该使用哪个向后导航 - href 或 location.back()?
- tfs - 我想使用 rest api 获取 tfs 用户的最后访问日期
- html - 如何使用 Swift WKWebView 加载大尺寸的 html 页面内容
- c++ - C++ MFC 覆盖 OnPaint() 不在另一台计算机上绘画
- jenkins - 如何从云上的 Jenkins 在我的本地系统上触发批处理文件?