我在遇到崩溃的报告时经常不知道为什么这个例外?
Fatal Exception: java.lang.RuntimeException: Failure from system
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1547)
at android.app.Activity.startActivityForResult(Activity.java:4283)
at android.app.Activity.startActivityForResult(Activity.java:4230)
at android.support.v4.app.FragmentActivity.startActivityForResult(Unknown Source)
at android.app.Activity.startActivity(Activity.java:4567)
at android.app.Activity.startActivity(Activity.java:4535)
at com.app.Register.MainActivity.onClick(Unknown Source)
at android.view.View.performClick(View.java:5702)
at android.widget.TextView.performClick(TextView.java:10887)
at android.view.View$PerformClick.run(View.java:22533)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by android.os.TransactionTooLargeException: data parcel size 8177736 bytes
at android.os.BinderProxy.transactNative(Binder.java)
at android.os.BinderProxy.transact(Binder.java:503)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3130)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1540)
at android.app.Activity.startActivityForResult(Activity.java:4283)
at android.app.Activity.startActivityForResult(Activity.java:4230)
at android.support.v4.app.FragmentActivity.startActivityForResult(Unknown Source)
at android.app.Activity.startActivity(Activity.java:4567)
at android.app.Activity.startActivity(Activity.java:4535)
at ca.dailydelivery.driver.Register.AdditionalInfoActivity.onClick(Unknown Source)
at android.view.View.performClick(View.java:5702)
at android.widget.TextView.performClick(TextView.java:10887)
at android.view.View$PerformClick.run(View.java:22533)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 RecyclerView 中使用 startActivityForResult 并且不知道如何...尝试这种方式并且我从 Activity 中获得了 NullPointExeption,有什么方法可以解决它。
这是活动:
RecyclerView recyclerView=findViewById(R.id.todo_Recyclerview);
Todo_Adapter adapter=new Todo_Adapter(this,Todo_DataGenerator.getData(this));
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(adapter);
}
TextView title=findViewById(R.id.todo_txt_Titleitem);
TextView content=findViewById(R.id.todo_txt_Contentitem);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode== Request &&
resultCode==RESULT_OK &&
data !=null){
String Title=data.getStringExtra(Todo_saveActivity.Todo_Title);
String Content=data.getStringExtra(Todo_saveActivity.Todo_Content);
title.setText(Title);
content.setText(Content);
Run Code Online (Sandbox Code Playgroud)
这是适配器:
public class Todo_Adapter extends RecyclerView.Adapter<Todo_Adapter.Todo_itemViewHolder> {
public static final int Request = 1002;
private Context context;
private List<Todo_SampleClass> Notes;
public Todo_Adapter(Context context, List<Todo_SampleClass> Notes) {
this.context = context;
this.Notes = …Run Code Online (Sandbox Code Playgroud) 我startActivityForResult()通过执行以下操作将图像加载到我的应用程序中:
val intentForLoadingImage = Intent(Intent.ACTION_GET_CONTENT)
intentForLoadingImage.type = "image/*"
if (intentForLoadingImage.resolveActivity(packageManager) != null) {
startActivityForResult(intentForLoadingImage, IMAGE_REQUEST_CODE)
}
Run Code Online (Sandbox Code Playgroud)
我已经重写了onActivityResult()将图像加载到 ImageView 中的逻辑。它适用于所有 Android 版本(我的应用程序的 minSdkVersion 是 21),但它在 Android 11 上绝对没有任何作用。因为intentForLoadingImage.resolveActivity(packageManager)返回 null 并且加载图像的活动不会启动。
我有一个简单的 ActivityResultLauncher 实现,我可以在其中从图库中选择图像:
ActivityResultLauncher<Intent> actResLauncher;
actResLauncher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(),this);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
actResLauncher.launch(intent);
Run Code Online (Sandbox Code Playgroud)
结果:
@Override
public void onActivityResult(ActivityResult result) {
if(result.getResultCode()== Activity.RESULT_OK){
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是我依赖于预定义的结果代码,例如 Activity.RESULT_OK 或 Activity.RESULT_CANCELED。有没有办法在启动意图时传递自定义请求代码?
android android-intent onactivityresult startactivityforresult
我想授予从 Android Studio 启用和禁用蓝牙的权限。我还假装使用蓝牙的其他功能作为设备列表,并连接到以前配对的设备等。
由于starActivityForResult已被弃用,我无法午餐要求用户津贴的弹出活动。
这是我的清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.bluetoothonofftest"
tools:ignore="CoarseFineLocation">
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30"
tools:ignore="CoarseFineLocation" />
<!-- Needed only if your app looks for Bluetooth devices.
If your app doesn't use Bluetooth scan results to derive physical
location information, you can strongly assert that your app
doesn't derive physical location. -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<!-- Needed only if your app makes the …Run Code Online (Sandbox Code Playgroud) java android android-permissions android-bluetooth startactivityforresult
谁能告诉我之间的差异startActivity和startActivityForResult?
被startActivity用来调用Activity异步和startActivityForResult一个同步调用?
正startActivity(intent)和startActivityForResult(intent,-1)一样的吗?
我正在使用startActivityForResult将值从Activity B返回到Activity A。但是当点击保存button在B中时,它不会返回到Activity A。有人可以帮我找出问题所在吗?
活动乙
save.setOnClickListener(new View.OnClickListener()
{ // return values to previous activity
@Override
public void onClick(View v)
{
Intent returnIntent=new Intent();
Project=project.getSelectedItem().toString();
Description=description.getText().toString();
progress=seekBar.getProgress();
returnIntent.putExtra("Project",Project);
returnIntent.putExtra("Description", Description);
returnIntent.putExtra("progress",progress);
returnIntent.putExtra("TimeIn", TimeIn);
returnIntent.putExtra("TimeOut",TimeOut);
setResult(Activity.RESULT_OK,returnIntent);
Log.e("d","d");
}
});
Run Code Online (Sandbox Code Playgroud)
活动A
public static final int PROJECT_REQUEST_CODE = 1;
public static final int CAMERA_REQUEST_CODE = 2;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.addDetails:
View menuItemView = findViewById(R.id.addDetails);
PopupMenu …Run Code Online (Sandbox Code Playgroud) 在我的Java程序中,我给用户一些选项,其中之一调用JavaFXProgram来显示某些内容。当被调用的JavaFX实际退出时,我只想在Java程序中运行更多代码,可能需要5秒钟,也可能需要1分钟。理想情况下,我想要的是类似于Android的设备。我们先致电startActivityForResult(),然后等待的致电onActivityResult()。我如何在自己的情况下达到类似的行为?
我写了这段代码来尝试复制遇到的问题。这是类似的想法,但是以某种方式将其称为JavaFX,开始循环并毫无问题地从用户检索输入。在我的其他程序中,我总是得到Exception in thread "main" java.util.InputMismatchException何时再次返回以扫描输入。但是正如我所说,理想情况下,我只想在JavaFX Application关闭后运行更多代码。
package JavaCallsJavaFXandWaits;
import java.util.Scanner;
import javafx.application.Application;
public class MyJavaProgram {
public static void main(String[] args) {
int input;
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("0 - exit");
System.out.println("1 - display something to me");
input = scanner.nextInt();
switch (input) {
case 0:
break;
case 1:
Application.launch(JavaCallsJavaFXandWaits.MyJavaFXProgram.class, null);
// how to get notified of MyJavaFXProgram exit? I only want to run code after it exits
break;
} …Run Code Online (Sandbox Code Playgroud)