我正在制作的应用程序需要将数据从活动2转移到前一个活动1。所以我用的是startActivityForResult(),然后是on activityresult();
直到昨天,它一直运行良好,当我按下按钮从活动1转到活动2时,我的应用程序会滞后并崩溃。
如果我出于某种原因注释掉活动1中的ActivityResult(),它会再次工作。但是这样数据就不会被传递,我需要将活动2的listview中的数据传输到活动1中的text View。
我不相信我真的改变了我的代码,所以我对为什么会发生这种情况感到困惑。如果有人可以帮助我检查我的代码,那就太好了。谢谢:)
崩溃日志:
E/AndroidRuntime:致命异常:主进程:com.example.jiowhere,PID:5667 Java . lang . nullpointerexception:尝试对com . example . jio where . listview adaptor . filter(listview adaptor . Java:119)处的空对象引用调用虚拟方法“Java . lang . string Java . lang . string . Java:176”
onCreate()方法外部的活动1
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Check that it is the SecondActivity with an OK result
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
// Get String data from Intent
String returnString = data.getStringExtra("keyName");
// Set text view with string
TextView filterView = (TextView) findViewById(R.id.filterByTags);
filterView.setText(returnString);
}
}
}
@Override
public void onClick(View v) {
if (v == tagButton) {
Intent intent = new Intent(this, TagSystemActivity.class);
startActivityForResult(intent, 1);
//crashes app
onActivityResult(1, RESULT_OK, intent);
}
}
OnCreate()方法内的Activity2
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String selectedFromList = (String) (listView.getItemAtPosition(position));
testing.setText(selectedFromList);
Intent intent = new Intent();
intent.putExtra("keyName", selectedFromList);
setResult(RESULT_OK, intent);
finish();
}});
您不应该手动调用onActivityResult(…)。
startActivityForResult(intent, 1);
//crashes app
onActivityResult(1, RESULT_OK, intent);
删除此对 onActivityResult(...) 的调用;从 onClick().
当您发布来自另一个活动的结果时,onActivityResult方法将自动被调用。
字符串返回String=data.getStringExtra("keyName");
在这一行中,您需要将“keyName”替换为您的密钥。我认为空对象引用了keyName。
删除下线,
onActivityResult(1, RESULT_OK, intent);
从这里,
@Override
public void onClick(View v) {
if (v == tagButton) {
Intent intent = new Intent(this, TagSystemActivity.class);
startActivityForResult(intent, 1);
//crashes app
onActivityResult(1, RESULT_OK, intent);
}
}
此行调用具有空对象的活动结果,然后活动 2 在活动 1 上发送结果。您永远不需要手动调用该方法。onActivityResult
方法在从某个地方获得结果后自动调用(在你的例子中,从 activity2)。
构建指纹:'Google/Sailfish/Sailfish:8.0.0/OPR3.170623.008/4294783:User/Release-Keys'修订:'0'ABI:'ARM64'pid:10010,tid:10046,name:ControllerMesse>>>>com.xxxxxx<< 有人能给我指个正确的方向吗。
背景: 项目中,原先服务端Access-Control-Allow-Origin设置的值为*,前端请求访问正常; 后来由于公司安全限制,*更改为一系列的白名单列表(域名列表),本地调试时由于诸如http://localhost:8090的域名不在白名单之内,所以前端接口请求会报错。 报错详情如下: 说明有跨域问题了,请求不成功。 解决方案: 服务端在之前的白名单列表Access-Control-A
不确定是什么问题。。下面的代码应该可以正常工作。。 我也没有例外,但Dragable 1根本不会动。。我用另一种方法试过,但没有成功。。
因此,我使用一个gps类来打开gps,这里有一个方法允许我们发送到,但是由于在AndroidX上不推荐,并且仍然可用,android团队建议我们下一个方法: 我如何使用新API来处理同样的事情?
Chorm浏览器打开控制器vue项目就报 关闭就不会有这个错, 大佬们 这怎么弄
目前找到一个 next/og 库,但是生成的是一个图像响应。有没有类似的可以直接生成图像的库,最好支持生成多种图像格式。 ImageResponse 可以通过 jsx 渲染为图像,并为客户端响应该图像。但是这个专为 SEO 服务的,有没有更通用的库,不用直接返回图像响应,返回图像就可以了。参数也不要求必须是 jsx(本质上 ReactNode),可以是 html 字符串。运行环境在 node 环境