标签: startactivityforresult

致命异常:java.lang.RuntimeException:系统失败

我在遇到崩溃的报告时经常不知道为什么这个例外?

 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)

android android-intent startactivityforresult

3
推荐指数
1
解决办法
9122
查看次数

如何在 RecyclerView 中实现 StartActivityForResult

我正在尝试在我的 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)

android android-recyclerview startactivityforresult

3
推荐指数
1
解决办法
5376
查看次数

如何在 Android 11 上启动ActivityForResult?

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 并且加载图像的活动不会启动。

android android-intent loadimage startactivityforresult

3
推荐指数
1
解决办法
4063
查看次数

ActivityResultLauncher 传递自定义请求代码

我有一个简单的 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

3
推荐指数
1
解决办法
1万
查看次数

我尝试使用 JAVA 授予对 Android Studio 上启用和禁用蓝牙的访问权限;但 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

3
推荐指数
1
解决办法
7873
查看次数

startActivity和startSubActivity

谁能告诉我之间的差异startActivitystartActivityForResult

startActivity用来调用Activity异步和startActivityForResult一个同步调用?

startActivity(intent)startActivityForResult(intent,-1)一样的吗?

android start-activity startactivityforresult

2
推荐指数
2
解决办法
7227
查看次数

为什么 startActivityForResult 不起作用?

我正在使用startActivityForResult将值从Activity B返回到Activity A。但是当点击保存buttonB中时,它不会返回到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)

android arraylist startactivityforresult

1
推荐指数
1
解决办法
1912
查看次数

在Java程序中调用JavaFX并等待退出以运行更多代码

在我的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)

java javafx wait onactivityresult startactivityforresult

1
推荐指数
1
解决办法
914
查看次数