安卓开发之传递简单数据(其中两种方法)
1、传递简单数据(思路:先在一个Activity新建一个Intent用putExtra传输数据【通过一个btn将数据传输过第二个Activity,用组件TextView通过getIntent方法接受intent,然后用getStringExtra接受】)
2、Main.class的代码部分(一个Intent用putExtra传输数据)Buttonbtn=(Button)findViewById(R.id.btnStartAty);btn.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){Intenti=newIntent(MainActivity.this,TheAty.class);//那个this对应那个classi.putExtra("data","这个是第一个Activity的数据");startActivity(i);}});
3、ActivityMain.xml文件(一个btn而已)<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="启动另一个Activity"android:id="@+id/btnStartAty"/></LinearLayout>
4、Theacty.xml部分(一个有id的TextView)<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/tv"/></LinearLayout>
5、Theaty.java代码部分(getIntent、找到设置好的tv用setText方法调用i.getStringExtra方法)privateTextViewtv;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_the_aty);Intenti=getIntent();tv=(TextView)findViewById(R.id.tv);tv.setText(i.getStringExtra("data"));}
6、传递数据包BundleMain.class代码部分(main.xml部分还是只有一个带id的btn)publicvoidonClick(Viewv){Intenti=newIntent(MainActivity.this,theActy.class);Bundleb=newBundle();b.putString("name","hhg");b.putInt("age",14);i.putExtras(b);startActivity(i);
7、另一个Activity.class代码部分(另一个Activity.xml部分还是只有一个带id的textView)privateTextViewtv;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_the_acty);Intenti=getIntent();Bundledata=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字符串)