从startActivityForResult获取结果

时间:2012-11-20 16:29:10

标签: java android

我有一个代码,可以从图库中获取图像,然后使用它设置gridSize。

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

PuzzleAcitivity:

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类。

sizeSelection:

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方法?提前谢谢

2 个答案:

答案 0 :(得分:1)

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

在您的孩子活动中,您必须做两件事来提供结果。首先,您致电setResult(int)以提供结果的当前预期。这不会返回任何内容,它只是准备结果 - 如果您希望在第二步之前的任何时间改变它。其次,您致电finish()完成活动。

有关完整文档,请参阅http://developer.android.com/reference/android/app/Activity.html

答案 1 :(得分:0)

我认为当你比较mIbtn ... ==查看时可能没有任何匹配检查它:)