2011-08-31 57 views
3

我的A类调用startActivityForResult:A级是的ActivityGroup在tabactivity的一个标签如何从活动返回结果(startActivityForResult)到TabHost活动?

Intent intent = new Intent(this, ClassB.class); 
startActivityForResult(intent, "STRING"); 

ClassB的是一个共同的活动,而不是在tabactivity,它是单独

Intent intent = this.getIntent(); 
intent.putExtra("SOMETHING", "EXTRAS"); 
this.setResult(RESULT_OK, intent); 
finish(); 

但在类一个onactivityResult没有收到任何,不excute.if我把classA从tabactivity,我的应用程序是好的。我已阅读

How to setResult() for a TabActivity which contains activity for tabs

How to return a result (startActivityForResult) from a TabHost Activity?

但不解决我的问题,有人可以在给一些建议,代码是越多越好,谢谢

编辑: A类我补充一下:

public class UpdateImageBroadcastReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      Log.i("temp","34353"); 


     } 
    } 



    /* (non-Javadoc) 
    * @see android.app.Activity#onPause() 
    */ 
    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     unregisterReceiver(updateImageBroadcastReceiver); 

    } 

    /* (non-Javadoc) 
    * @see android.app.Activity#onResume() 
    */ 
    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 

     updateImageFilter = new IntentFilter("ACTION_CHANGE_TAB"); 
     updateImageBroadcastReceiver = new UpdateImageBroadcastReceiver(); 
     registerReceiver(updateImageBroadcastReceiver, updateImageFilter); 


    } 
在B类

Intent intent = new Intent("ACTION_CHANGE_TAB"); 
         intent.putExtra("path", f.getAbsolutePath()); 
         sendBroadcast(intent); 

        // FileListSelectActivity.this.setResult(RESULT_OK, intent); 
         finish(); 

但我无法打印:Log.i(“temp”,“34353”);

回答

1

尝试使用广播接收器。您可以在活动B改写的onStop(),广播从活动B中的事件和活动A.

+0

我会尝试,但当活动b结束时,您的代码可以更新我的ui – pengwang

+0

您可以随时广播活动,例如onPause。没有限制。 – superM

+0

明天我会试试你的方法,谢谢 – pengwang

1

不知道它是否是最好的方法,但是目前我使用一个我称之为内存的类来在活动之间传递对象。

public class Memory { 
    public static Object objectToPass = null; 
} 
+0

谢谢你给我一些建议,但通过我可以得到的价值,但如何更新UI,你知道在onactivityResult当收到resultok,它可以更新UI,我cannoy再次startactivity类一个 – pengwang

1

我无法找到确切问题没有源代码的听,但它可能是明年形势一个

1 )tabhost的根活动未收到onActivityResult。那么你应该在TabHost中的Activity中调用overriden onActivityResult

2)另一种情况:tabhost中的Activity没有收到onActivityResult。只有重点活动才会收到ActivityGroup内的任何操作。你应该把重点放在它的一些视图上,然后你会收到行动。

+0

谢谢你我会尝试第二种方法,谢谢 – pengwang

+0

我发现聚焦是在tabactivity上,如何让A类的视图得到聚焦? – pengwang

+0

例如,您可以为根活动设置android:focusableInTouchMode =“true”android:focusable =“true”。但你应该请求重点手册在切换标签 –

相关问题