学习Android之第二个小程序(startActivityForResult与onActivityResult)
来源:互联网 发布:java获取每个月第一天 编辑:程序博客网 时间:2024/06/07 10:26
效果如下:
过程:
输入体重,点击“计算”,跳转Activity,显示结果,点击返回,内容仍在。
FristActivity.java
package cn.edu.bzu.activity;import com.example.work.R;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;public class FristActivity extends Activity {RadioButton radioButton1,radioButton2;EditText shengao;Button button;String hight;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.frist_activity);radioButton1 = (RadioButton)findViewById(R.id.RB01);radioButton2= (RadioButton)findViewById(R.id.RB02);shengao = (EditText) findViewById(R.id.shengao);button = (Button) findViewById(R.id.But1);button.setOnClickListener(new OnClickListener() { //按钮点击事件@Overridepublic void onClick(View v) {Double double1=0.0,double2=0.0;Intent intent = new Intent();Bundle bundle = new Bundle();/** * 获取字符串,并转换类型 */hight = shengao.getText().toString();double1 =Double.parseDouble(hight);/** * 判断性别 */if(radioButton1.isChecked()){double2 =(double1-80)*0.7;bundle.putString("SEX", "男性");}if(radioButton2.isChecked()){double2 =(double1-70)*0.6;bundle.putString("SEX", "女性");}/** * 捆绑并跳转 */bundle.putDouble("H", double1);bundle.putDouble("T", double2);intent.putExtras(bundle);intent.setClass(FristActivity.this, SecondActivity.class);startActivityForResult(intent,0);/** * 置为空,看看是否onActivityResult起作用 */shengao.setText(""); }});}/** * 重写onActivityResult */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(RESULT_OK == resultCode ){double h = data.getExtras().getDouble("H");String sex = data.getExtras().getString("SEX");shengao.setText(h+"");/** * 如果选中为男性,什么都不做;如果为女性,则选中radioButton2 */if(sex.trim().equals("男性")){}else{radioButton2.toggle();}}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
frist_activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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=".FristActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/tishi" android:textSize="25sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="110dp" android:text="性别:" android:textSize="25sp" /> <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="70dp" android:layout_marginTop="100dp" android:orientation="horizontal" > <RadioButton android:id="@+id/RB01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="@string/boy" android:textSize="40sp" /> <RadioButton android:id="@+id/RB02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/girl" android:textSize="40sp" /> </RadioGroup> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="200dp" android:text="身高:" android:textSize="25sp" /> <EditText android:id="@+id/shengao" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_marginTop="200dp" android:layout_marginLeft="70dp" android:textSize="25sp" /> <Button android:id="@+id/But1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="100dp" android:layout_marginTop="250dp" android:text="计算" /></RelativeLayout>
SecondActivity.java
package cn.edu.bzu.activity;import com.example.work.R;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class SecondActivity extends Activity{TextView textView;double Weight,hight;String sex;Button but2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.second_activity);but2 = (Button)findViewById(R.id.but2);textView = (TextView)findViewById(R.id.AC2_TV1);/** * 接受数据 */Bundle getFirst = this.getIntent().getExtras();sex =getFirst.getString("SEX");Weight= getFirst.getDouble("T");hight= getFirst.getDouble("H");textView.setText("你是一位"+sex+"\n你的身高是"+hight+"\n你的标准体重是"+Weight+"公斤");but2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent= new Intent();Bundle back = new Bundle();intent.setClass(SecondActivity.this, FristActivity.class);back.putString("SEX", sex);back.putDouble("H", hight);intent.putExtras(back);setResult(RESULT_OK, intent); //chuSecondActivity.this.finish();}});}}
startActivityForResult(Intent intent, int requestCode)
参数intent就不说了。参数requestCode,是一个常量,是一个标志。
setResult(int resultCode, Intent data)
参数resultCode与onActivityResult的第二个参数对应,也就是onActivityResult 里的resultCode。
大体过程:
Aactivity通过startActivityForResult跳转到Bactivity,Bactivity执行setResult和finish,传值给Aactivity,返回Aactivity,
返回Aactivity后马上自动执行onActivityResult。
0 0
- 学习Android之第二个小程序(startActivityForResult与onActivityResult)
- Android:startActivityForResult 与 onActivityResult
- android基础——startActivityForResult()与onActivityResult()
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult 函数
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- startActivityForResult与onActivityResult
- Android:startActivityForResult 和 onActivityResult
- Android学习之使用startActivityForResult()和onActivityResult()进行跳转并返回数据
- 解决Clock skew detected.
- TCP扫描和UDP扫描以及它们的区别
- Java Thread 总结
- 程序员练级之路
- 数据挖掘常用的方法(分类,回归、聚类、关联规则)
- 学习Android之第二个小程序(startActivityForResult与onActivityResult)
- 【nyist】Personal Contest.2 (第二次比赛)
- 黑马程序员_正则表达式
- java synchronized详解
- Xcode报错our build settings specify a provisioning profile with the UUID “XXXX”, however, no such prov
- CentOS 修改IP地址, DNS, 网关
- opencv2.2以上不支持CvvImage的解决办法
- Time
- Google Fonts Sass Mixin