当前位置: 代码迷 >> Android >> 第一章:初进Android大门(不同的Activity之间的数据传递)
  详细解决方案

第一章:初进Android大门(不同的Activity之间的数据传递)

热度:53   发布时间:2016-05-01 16:16:06.0
第一章:初入Android大门(不同的Activity之间的数据传递)
效果










来设置第一个Activity
main.xml
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><EditTextandroid:id="@+id/heigths"android:layout_width="129px"android:layout_height="wrap_content"android:textSize="18sp"android:layout_x="122px"android:layout_y="141px"></EditText><RadioGroup android:id="@+id/sexs"        android:layout_width="wrap_content"		android:layout_x="122px"		android:orientation="horizontal"		android:layout_y="87px"        android:layout_height="wrap_content"><RadioButtonandroid:id="@+id/boy"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="&#30007;"></RadioButton><RadioButtonandroid:id="@+id/gril"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="&#22899;"></RadioButton></RadioGroup><TextViewandroid:id="@+id/sexText"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="&#24615;&#21035;:"android:layout_x="51px"android:layout_y="102px"></TextView><TextViewandroid:id="@+id/heigth"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="&#36523;&#39640;:"android:layout_x="51px"android:layout_y="152px"></TextView><Buttonandroid:id="@+id/count"android:layout_width="74px"android:layout_height="wrap_content"android:text="&#35745;&#31639;"android:layout_x="140px"android:layout_y="203px"></Button></AbsoluteLayout>


设置第二个Activity新建一个layout2.xml文件
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextViewandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="&#24615;&#21035;:"android:layout_x="74px"android:layout_y="106px"></TextView></AbsoluteLayout>


AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="transfer.data"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity         		  android:name=".TransferData"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>		<activity android:name=".TransferData2"></activity>    </application></manifest> 


在来看看R.java
/* AUTO-GENERATED FILE.  DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found.  It * should not be modified by hand. */package transfer.data;public final class R {    public static final class attr {    }    public static final class drawable {        public static final int icon=0x7f020000;    }    public static final class id {        public static final int boy=0x7f050003;        public static final int count=0x7f050007;        public static final int gril=0x7f050004;        public static final int heigth=0x7f050006;        public static final int heigths=0x7f050001;        public static final int sexText=0x7f050005;        public static final int sexs=0x7f050002;        public static final int text=0x7f050000;    }    public static final class layout {        public static final int layout2=0x7f030000;        public static final int main=0x7f030001;    }    public static final class string {        public static final int app_name=0x7f040001;        public static final int hello=0x7f040000;    }}

好了配置完了接下来开始写代码了

package transfer.data;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;public class TransferData extends Activity {    /** Called when the activity is first created. */	private Button bt;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /**载入main.xml*/        setContentView(R.layout.main);        /**找到计算按钮*/        bt=(Button)findViewById(R.id.count);        /**设置按钮的监听事件*/        bt.setOnClickListener(new Button.OnClickListener(){        	public void onClick(View v){        		/**找到文本框*/        		EditText et=(EditText)findViewById(R.id.heigths);        		/**将文本框的值转换为 double类型的*/        		double height=Double.parseDouble(et.getText().toString());        		String sex="";        		/**找到单选按钮*/        		RadioButton rb1=(RadioButton)findViewById(R.id.boy);        		/**判断是否被选中*/        		if(rb1.isChecked()){        			sex="男";        		}else{        			sex="女";        		}        		/**实例化Intent对像,并指定传递的class*/        		Intent intent=new Intent();        		intent.setClass(TransferData.this, TransferData2.class);        		        		/**实例化Bundle对像,把将要传递的数据以键值对的形式添加进去*/        		Bundle bundle=new Bundle();        		/**添加的是Double类型的数值*/        		bundle.putDouble("height", height);        		/**添加的是String类型的数值*/        		bundle.putString("sex", sex);        		/**将设置好值的Bundle对象添加进Intent*/        		intent.putExtras(bundle);        		/**调用TransferData2 传递开始*/        		startActivity(intent);        	}        });    }}



package transfer.data;import java.text.DecimalFormat;import java.text.NumberFormat;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class TransferData2 extends Activity {	public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        /**载入layout*/        setContentView(R.layout.layout2);        /**获取 Bundle对象*/        Bundle bundle=this.getIntent().getExtras();        /**获取 传递过来的值也就是性别*/        String sex=bundle.getString("sex");        /**获取 传递过来的值身高*/        double height=bundle.getDouble("height");        /**通过id找到TextView组件对象*/        TextView text=(TextView)findViewById(R.id.text);        /**设置TextView的文本值*/        text.setText("性别:"+sex+"\n身高:"+height+"\n标准体重:"+getWeight(sex, height));	}		public String format(double num){		NumberFormat formatter=new DecimalFormat("0.00");		String count=formatter.format(num);		return count;	}	/**计算男女标准体重*/	public String getWeight(String sex,double height){		String weight="";		weight=format((height-80)*0.7);		if(sex.equals("男")){			weight=format((height-70)*0.7);		}		return weight;	}}


  相关解决方案