java - 从 startActivityForResult 获取结果

标签 java android

我有一个代码,可以从图库中获取图像,然后用它设置网格大小。

将 android 发送到 SizeSelection 类的主要代码。

拼图 Activity :

if( resultCode == RESULT_OK) {
         Intent gridSizeIntent = new Intent();              
         gridSizeIntent.setClass(this, SizeSelection.class);
         startActivityForResult(gridSizeIntent, GRIDSIZE_VALUE_SELECT);
         createGameBoard(SizeSelection.getGridSize(this)); 
         }

但这就是麻烦出现的地方:SizeSelection,当我点击应该激活并设置 gridSize 的按钮时,什么也没有发生。我认为问题在于将数据从 SizeSelection 获取到主 PuzzleActivity 类。

尺寸选择:

protected static short getGridSize(Context content) {
        if ( mIbtn3x3 == view) {
             short gridSize = 3;
            return gridSize;
        }else if (mIbtn4x4 == view ) {
            short gridSize = 4;
            return gridSize;
        }else if (mIbtn5x5 == view ) {
            short gridSize = 5;
            return gridSize ;
        } 
            return gridSize;
        }

我应该如何完成 getGridSize 方法?提前致谢

最佳答案

当您启动一个获取结果的 Activity 时,您当前的代码不会阻塞。也就是说,startActivityForResult() 很快返回,但您还没有结果。为了接收结果(一旦结果可用),您必须在调用类中提供 onActivityResult(int, int, Intent) 方法。一旦结果可用,该方法就会自动调用。

在您的子 Activity 中,您必须做两件事才能提供结果。首先,您调用 setResult(int) 来提供当前对结果的期望。这不会返回任何内容,它只是准备结果 - 如果您愿意,您可以在第二步之前随时更改它。其次,您调用 finish() 来完成您的 Activity 。

参见http://developer.android.com/reference/android/app/Activity.html获取完整文档。

关于java - 从 startActivityForResult 获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477634/

相关文章:

android - 如何从 Android Play 导出用户评论

java - 天真的算法实现

java - 应用程序未出现在 Android 7/8 中的 "Do Not Disturb Access"屏幕中

java - 如何通知正在运行的线程发生更改

java - 我的扫雷器 dot java 出了什么问题

java - 使用 backstack 时 android.app.Fragment 和 android.support.v4.app.Fragment 的不同行为

java - ViewPager,滚动选项卡 + 滑动

Android 数据库助手单例和同步

java - database.models.Employee 不是在此服务器上注册的实体 Bean?

java - Hibernate 从数据库中获取列表