如何在Activity中启动另一个Activity与值传递

来源:互联网 发布:70d锦纶单股网络丝 编辑:程序博客网 时间:2024/06/05 20:22

1.      如何在Activity中启动另一个Activity?

(1)在Android Mainifest 文件中声明Activity

格式如下:

(2)调用startActivity(Intent intent)方法

Intent intent=newIntent(MainActivity.this,NextActivity.class);

startActivity(Intent intent);

 

2把数据从一个Activity传到另一个Activity

(1)    直接采用Intent封装

a.发送部分

  Intentintent=newIntent(MainActivity.this,NextActivity.class);

        Stringa=edittext1.getText().toString().trim();

        Stringb=edittext2.getText().toString().trim();

intent.putExtra("message",a+"+"+b+"=");

startActivity(intent);

b.接收部分

Intent intent = getIntent();

      String message = intent.getStringExtra("message");

shizi.setText(message);

完整代码如下

MainActivity

packagecom.example.firstactivity;

 

importandroid.os.Bundle;

importandroid.app.Activity;

importandroid.content.Intent;

 

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.EditText;

 

publicclass MainActivity extends Activity {

   private Button button1;

   private EditText edittext1,edittext2,edittext3;

   @Override

   protected void onCreate(BundlesavedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

      edittext1=(EditText)findViewById(R.id.editText1);

      edittext2=(EditText)findViewById(R.id.editText2);

      edittext3=(EditText)findViewById(R.id.edittext3);

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

      button1.setOnClickListener(new View.OnClickListener()

       {

 

                     @Override

                     public void onClick(View v){

                               // TODOAuto-generated method stub

                               Intent intent=newIntent(MainActivity.this,NextActivity.class);

                               Stringa=edittext1.getText().toString().trim();

                               Stringb=edittext2.getText().toString().trim();

                               intent.putExtra("message",a+"+"+b+"=");

                               startActivityForResult(intent,1000);

                     }

               

       });

   }

   @Override

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

            // TODO Auto-generated method stub

            super.onActivityResult(requestCode,resultCode, data);

            if (requestCode == 1000 &&resultCode == 1001) {

                     //从子窗口中获取返回结果

                     String result_value =data.getStringExtra("result");

                     edittext3.setText(result_value);

            }

   }

}

NextActivity:

packagecom.example.firstactivity;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.TextView;

 

publicclass NextActivity extends Activity {

    private TextView shizi;

    private Button button2;

    private EditText result ;

   public NextActivity() {

            // TODO Auto-generated constructorstub

   }

  

   @Override

   protected void onCreate(BundlesavedInstanceState) {

            // TODO Auto-generated method stub

            super.onCreate(savedInstanceState);

            setContentView(R.layout.next);

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

            result =(EditText)this.findViewById(R.id.result);

            shizi =(TextView)this.findViewById(R.id.shizi);

            Intent intent = getIntent();

            String message =intent.getStringExtra("message");

            shizi.setText(message);

            button2.setOnClickListener(newView.OnClickListener() {

                     @Override

                     public void onClick(View v){

                               // TODOAuto-generated method stub

                               String value =result.getText().toString().trim();

                               Intent intent =new Intent();

                               intent.putExtra("result",value);

                               //设置回传的意图

                               setResult(1001,intent);

                               finish();//结束activity的生命周期

                     }

            });

           

   }

 

}

(2)采用Bundle封装

a.发送部分

Bundle bundle=new Bundle();

Bundle.putString(“name”,name);

Intent.putExtras(bundle);

startActivity(intent);

b.接收部分

Bundle bundle=this.getIntent().getExtras();

String name=bundle.getString(“name”);

(EditText)et.setText(name);

0 0
原创粉丝点击