android基础--为应用添加新的Activity与参数传递

 

Main.xml

<LinearLayout

<TextView 

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/hello"

    />

    <Button android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/button"

        android:id="@+id/button"

    />

</LinearLayout>

Other.xml

<LinearLayout

  <TextView

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:text="@string/content"

  android:id="@+id/resultView"/>

  <Button

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="@string/closeButton"

  android:id="@+id/closeButton"/>

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

   

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

        button.setOnClickListener(new ButtonClickListener());

    }

    /**

     * onActivityResult方法由系统调用,可以得到OtherActivity关闭时返回的参数

     */

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

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

              Toast.makeText(getApplicationContext(), result, 1).show();

           super.onActivityResult(requestCode, resultCode, data);

       }

       private final class ButtonClickListener implements View.OnClickListener{

              public void onClick(View v) {//打开新的Activity

                     Intent intent = new Intent();

                     intent.setClass(getApplicationContext(), OtherActivity.class);//明确指定了所要激活的组件(显示意图)

                     /**第一种传递参数的方法

                      * intent.putExtra("name", "李四");//往意图对象中传参数

                      * intent.putExtra("age", 22);

                      */

                     //另外一种传递参数的方法

                     Bundle bundle = new Bundle();

                     bundle.putString("name", "张三");

                     bundle.putInt("age", 20);

                     intent.putExtras(bundle);

                     //通过才可以取得关闭OtherActivity时返回的结果数据

                     startActivityForResult(intent, 22);//第二个参数标识在哪个地方调用该方法

                     //startActivity(intent);//激活

              }

    }

}

OtherActivity.java

public class OtherActivity extends Activity {

    /**

     * onCreate方法由系统自动调用,

     * 在activity整个声明周期中只会被调用一次,

     * 适合在这个方法中完成数据的初始化,

     * 包括窗口刚开始要完成的界面

     */

    protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.other);//设置在activity代表的窗口上显示other.xml界面

       Intent intent = getIntent();//获取激活本Activity的意图

       /**获取参数的方法

        *String name = intent.getStringExtra("name");//获取意图传过来的参数

        *int age = intent.getIntExtra("age", 0);//0:如果age参数不存在,则默认为0

        */

       //另外一种获取参数的方法

       Bundle bundle = intent.getExtras();

       String name = bundle.getString("name");

       int age = bundle.getInt("age");

       //找到组件

       TextView textView = (TextView) this.findViewById(R.id.resultView);

       //把参数内容放入组件

       textView.setText("名称:"+name+", 年龄: "+age);

      

       //找到关闭按钮

       Button button = (Button) this.findViewById(R.id.closeButton);

       //为按钮设置点击事件

       button.setOnClickListener(new ButtonClickListener());

    }

    private final class ButtonClickListener implements View.OnClickListener{

       public void onClick(View v) {

           Intent intent = new Intent();

           intent.putExtra("result", "这是结果数据");

           //为该Activity设置返回对象

           setResult(100, intent);

           finish();//关闭Activity,将参数返回给MainActivity

       }

    }

}

 

<!-- 在清单中完成OtherActivity的配置

         android:label="@string/title指定组件窗口的标题

        -->

       <activity android:name=".OtherActivity" android:label="@string/title">

       </activity>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值