安卓开发之传递简单数据(其中两种方法)

2025-10-31 21:28:29

1、传递简单数据

(思路:先在一个Activity新建一个Intent 用putExtra传输数据【通过一个btn将数据传输过第二个Activity,用组件TextView通过getIntent方法接受intent,然后用getStringExtra接受 】)

2、Main.class的代码部分(一个Intent 用putExtra传输数据)

Button btn  = (Button) findViewById(R.id.btnStartAty);btn.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        Intent i = new Intent(MainActivity.this,TheAty.class);//那个this对应 那个class        i.putExtra("data","这个是第一个Activity的数据");        startActivity(i);    }});

3、ActivityMain.xml文件(一个btn而已)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="启动另一个Activity"        android:id="@+id/btnStartAty"/></LinearLayout>

4、Theacty.xml部分(一个有id的TextView)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/tv"/></LinearLayout>

5、Theaty.java代码部分(getIntent、 找到设置好的tv 用setText方法 调用i.getStringExtra方法)

private TextView tv ;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_the_aty);    Intent i = getIntent();    tv = (TextView) findViewById(R.id.tv);    tv.setText(i.getStringExtra("data"));}

6、传递数据包 Bundle

Main.class 代码部分(main.xml部分还是只有一个带id的btn)

public void onClick(View v) {    Intent i = new Intent(MainActivity.this,theActy.class);    Bundle b = new Bundle();    b.putString("name","hhg");    b.putInt("age",14);    i.putExtras(b);    startActivity(i);

7、另一个Activity.class代码部分(另一个Activity.xml部分还是只有一个带id的textView)

private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_the_acty);    Intent i = getIntent();    Bundle data= i.getExtras();    tv = (TextView) findViewById(R.id.tv);    tv.setText(String.format("name=%s,age=%d,name1=%s",data.getString("name"),data.getInt("age"),data.getString("name1","它是默认值")));

8、(转换说明符

      %a(%A)     浮点数、十六进制数字和p-(P-)记数法(C99)

      %c             字符

      %d             有符号十进制整数

      %f              浮点数(包括float和doulbe)

      %e(%E)     浮点数指数输出[e-(E-)记数法]

      %g(%G)     浮点数不显无意义的零"0"

      %i              有符号十进制整数(与%d相同)

      %u             无符号十进制整数

      %o             八进制整数    e.g.     0123

      %x(%X)      十六进制整数0f(0F)   e.g.   0x1234

      %p             指针

      %s             字符串)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢