• Activity之间传递参数(一)


    -------siwuxie095

       

       

       

    传递简单数据

       

    1)首先创建一个项目:SendArgs

       

       

       

    (2)选择API:21 Android 5.0

       

       

    3)选择 Empty Activity

       

       

       

    (4)默认

       

       

    5)完成,一览:

       

       

       

    6)先进 activity_main.xml 里的 Text 手动添加一个Button,

    删掉自带的TextView,如下:

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

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

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/activity_main"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.siwuxie095.sendargs.MainActivity">

       

       

       

    <Button

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:id="@+id/btnStartAty"

    android:text="启动另一个Activity"/>

       

    </RelativeLayout>

       

    7new 一个 Empty Activity:TheAty

       

       

       

       

       

       

       

    (8)给activity_the_aty.xml添加一个TextView,如下:

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

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

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/activity_the_aty"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.siwuxie095.sendargs.TheAty">

       

    <TextView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="Hello World"

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

       

    </RelativeLayout>

       

    9)在MainActivity.java 中添加:findViewById(R.id.btnStartAty)

    和setOnClickListener(new OnClick…),会自动生成代码,接着在onClick()

    函数里创建一个Intent,通过 Intent 的 putExtra() 传参,最后通过 startActivity()

    把Intent对象传入:

    package com.siwuxie095.sendargs;

       

    import android.content.Intent;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

       

    public class MainActivity extends AppCompatActivity {

       

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

       

    findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    //创建一个new Intent()实例,传入ContextClass类型的参数

    //对应MainActivity.this 被启动的Activity的类定义 TheAty.class

    Intent i = new Intent(MainActivity.this,TheAty.class);

    //通过Intent对象,调用putExtra()方法,传参

    //这里传入StringString类型的参数,实际上就是键值对

    i.putExtra("data","你好 我是传递的参数");

    //传入i

    startActivity(i);

    }

    });

    }

    }

       

       

    (10)在 TheAty.java 中获取数据,如下:

    package com.siwuxie095.sendargs;

       

    import android.content.Intent;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.widget.TextView;

       

    public class TheAty extends AppCompatActivity {

       

       

    private TextView tv;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_the_aty);

       

    //TheAty是通过MainActivity中的Intent启动,直接通过getIntent()方法

    //获取与这个Activity相关的Intent

    Intent i=getIntent();

       

    //要访问TextView,先在上面声明

    //findViewById()的返回值在编译时只能查看到类型是View,而事实上是TextView类型

    //需要强制类型转换

    tv= (TextView) findViewById(R.id.tv);

    //调用setText()方法设置字符串,这里字符串通过Intent获取

    tv.setText(i.getStringExtra("data"));

       

    }

    }

       

       

    (11)发送到手机,运行一览:

       

       

       

       

       

    【made by siwuxie095】

       

       

       

       

       

  • 相关阅读:
    这种人就是傻逼
    WinDBG + VMWare 双机调试
    最近我遇到了一个代码上的问题
    GITHUB,Fork别人的代码,然后更新的问题
    又半个月没写了,最近忙,真的忙,在考虑换工作的问题
    最近在弄clamav,这里把clamav的编译方法弄一下吧
    基于seay代码,加了个小功能
    CTF:第七题
    CTF:第六题
    Python str拼接bytes
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6234671.html
Copyright © 2020-2023  润新知