`

举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还

 
阅读更多

举例说我想要做的一个事情是,在一个主界面(Activity)上能连接往许多不同子功能模块(Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这个时候就要用到回调函数onActivityResult()。 

 

现在贴上一个关于onActivityResult的用法的小例子的代码:

onActivityResult.java

主要的Activity,一会会先执行此Activity,然后调用B Activity,并向其发送数据,通过回调函数来获取B传回来的值。

 

 

public class onActivityResult extends Activity {

   /** Called when the activity is first created. */

 

   @Override

   public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       StartA();

   }

   public void StartA()

   {

         Button buttonA = (Button)findViewById(R.id.button1);

         buttonA.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {

                           // TODO Auto-generated method stub

//                     onActivityResult.this.setContentView(R.layout.second);

//                     onActivityResult.this.StartB();

 

                              Intent intent = new Intent(onActivityResult.this,ClassB.class);

                                  String passString = "Hello,this is A";

                                 intent.putExtra("ToB", passString);

                                  startActivityForResult(intent, 0);

                           

 

                    }

             });

   }

   protected void onActivityResult(int requestCode, int resultCode, Intent data) {

         switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK

                case RESULT_OK:

         Bundle b=data.getExtras(); //dataB中回传的Intent

         String str=b.getString("FromB");//str即为回传的值

         TextView view = (TextView)findViewById(R.id.textA);

         view.setText(str);

                 break;

                default:

                   break;

         }

         }

   

   

   /*public void StartB()

   {

         Button buttonB = (Button)findViewById(R.id.button2);

         buttonB.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {

                           // TODO Auto-generated method stub

                       onActivityResult.this.setContentView(R.layout.main);

                       onActivityResult.this.StartA();

 

                    }

             });

   }*/

}

 

----------------------------------------------------------------------------------------------------------------------

ClassB.java

 

public class ClassB extends Activity{

      private Intent intent;

   public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.second);

       

       intent = getIntent();

             String result = intent.getStringExtra("ToB");

       

       

         Button button = (Button)findViewById(R.id.button2);

       button.setOnClickListener(new View.OnClickListener() {

                    

                    @Override

                    public void onClick(View v) {

                           // TODO Auto-generated method stub

                           Intent intent = new Intent(ClassB.this,onActivityResult.class);

                           String passString = "Hello,this is B";

                           intent.putExtra("FromB", passString);

                           setResult(RESULT_OK, intent);

                           finish();

                    }

             });

      TextView textView = (TextView)findViewById(R.id.textB);

       textView.setText(result);

   }

 

}

-------------------------------------------------------------------------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics