当前位置:操作系统 > 安卓/Android >>

activity之间参数传递

 

这一节介绍一下activity之间参数传递。我们知道用intent可以实现activity之间相互跳转,在跳转的同时我们不免也需要传递一些参数,下面就介绍一下如何在一个activity里传递参数,在另一个activity里接受参数。

           activity之间有两种参数传递形式:一种是一个activity启动另一个activity的时候传递数据到另一个activity,然后在activity中接受到数据,做相应处理。另一种是一个activity启动另个一activity传递数据,当另个一activity窗口关闭后,在传递数据到启动它的那个activity。

          我们先看一下第一种方式

         首先先建立一个ActivityDemo项目:

 

 

    

 

 

public class MainDemoActivity extends Activity { 

   private Button button1,button2; 

     @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        // TODO Auto-generated method stub 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.main); 

         

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

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

         

        button1.setOnClickListener(new MyListener()); 

        button2.setOnClickListener(new MyListener()); 

    } 

     private class MyListener implements View.OnClickListener{ 

 

        public void onClick(View v) { 

            // TODO Auto-generated method stub 

            Intent intent=new Intent(); 

            if(v==button1){ 

             intent.setClass(MainDemoActivity.this, FirstDemoActivity.class); 

            }else if(v==button2){ 

             intent.setClass(MainDemoActivity.this, ResultDemoActivity.class); 

            } 

            startActivity(intent); 

        } 

          

     } 

 

   接着给出main.xml

 

 

 

 

 

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="fill_parent" 

    android:layout_height="fill_parent" 

    android:orientation="vertical" > 

 

    <Button 

        android:id="@+id/button1" 

        android:layout_width="wrap_content" 

        android:layout_height="wrap_content" 

        android:text="传递参数不得到返回值" /> 

 

    <Button 

        android:id="@+id/button2" 

        android:layout_width="wrap_content" 

        android:layout_height="wrap_content" 

        android:text="传递参数得到返回值" /> 

   

</LinearLayout> 

 

    看一下第一种是怎么传递参数的:

 

 

 

 

 

public class FirstDemoActivity extends Activity { 

   private Button button3; 

   private EditText editText; 

     @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        // TODO Auto-generated method stub 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.first); 

         

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

        editText=(EditText) this.findViewById(R.id.editText1); 

        button3.setOnClickListener(new View.OnClickListener() { 

              

            public void onClick(View v) { 

                // TODO Auto-generated method stub 

                String content=editText.getText().toString(); 

              Intent intent=new Intent(FirstDemoActivity.this,SecondDemoActivity.class); 

              //可以把要传递的参数放到一个bundle里传递过去,bundle可以看做一个特殊的map. 

              Bundle bundle=new Bundle(); 

              bundle.putString("result", "第一个activity的内容"); 

              bundle.putString("content",content); 

              intent.putExtras(bundle); 

              //也可以用这种方式传递. 

              //intent.putExtra("result", "第一个activity的内容"); 

               

              startActivity(intent); 

            } 

        }); 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,