• Bundle数据在Activity之间传递


    MainActivity 
    package com.example.android_text3; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast;
    public class MainActivity extends Activity { EditText et; Button bt; RadioButton rb1; RadioButton rb2; String sex=""; Double height=0.0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et=(EditText)findViewById(R.id.editText1); bt=(Button)findViewById(R.id.go); rb1=(RadioButton)findViewById(R.id.radio0); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(rb1.isChecked()){ sex="m"; }else { sex="w"; } String textview=et.getText().toString(); if (textview==null||textview.equals("")) { Toast.makeText(MainActivity.this, "请输入身高", Toast.LENGTH_LONG).show(); } else { height=Double.valueOf(textview); Log.i("height",String.valueOf(height)); Intent intent=new Intent(); intent.setClass(MainActivity.this, SecondActivity.class); Bundle extras=new Bundle(); extras.putString("sex", sex); extras.putDouble("height", height);; intent.putExtras(extras); startActivityForResult(intent, 0); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (resultCode) { case RESULT_OK: Bundle bundle=data.getExtras(); Double weight=bundle.getDouble("weight"); Toast.makeText(MainActivity.this, "体重为"+String.valueOf(weight), Toast.LENGTH_LONG).show(); break; default: break; } } }

    SecondActivity.java
    package com.example.android_text3;
    
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    
    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 sex;
        TextView height;
        Button bt;
        Double weight;
        Intent intent;
        Bundle bundle;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.secondlayout);
            sex = (TextView) findViewById(R.id.sex);
            String sexmessage = this.getIntent().getExtras().getString("sex");
            height = (TextView) findViewById(R.id.height);
            sex.setText("性别:" + getSex(sexmessage));
            height.setText("身高:"+formatnum(this.getIntent().getExtras()
                    .getDouble("height")));
            bt = (Button) findViewById(R.id.goback);
            weight = getWeight(sexmessage,
                    this.getIntent().getExtras().getDouble("height"));
            intent = this.getIntent();
            bundle =intent.getExtras();
            bt.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    bundle.putDouble("weight", weight);
                    intent.putExtras(bundle);
                    SecondActivity.this.setResult(RESULT_OK, intent);
                    SecondActivity.this.finish();
                }
            });
        }
    
        /**
         * 
         * @param values
         * @return
         */
        String formatnum(double values) {
            NumberFormat formatter = new DecimalFormat("0.00");
            String s = formatter.format(values);
            return s;
        }
    
        /**
         * 
         * @param sex
         * @return
         */
        String getSex(String sex) {
            if (sex.equals("w")) {
                sex = "";
            } else {
                sex = "";
            }
            return sex;
        }
    
        Double getWeight(String sex, Double height) {
            Double weight=0.0;
            if(sex.equals("m")){
                weight=(height-80)*0.7;
            }else{
                weight=(height-70)*0.8;
            }
            return weight;
        }
    }

    xml文件

    activity_main.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"
        tools:context="${packageName}.${activityClass}" >
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioGroup1"
            android:layout_marginTop="42dp"
            android:layout_toLeftOf="@+id/radioGroup1"
            android:text="身高:" />
    
        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView2"
            android:layout_alignBottom="@+id/textView2"
            android:layout_centerHorizontal="true"
            android:ems="10"
            android:inputType="number" />
    
        
    
        <RadioGroup
            android:id="@+id/radioGroup1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText1"
            android:orientation="horizontal" >
    
            <RadioButton
                android:id="@+id/radio0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="" />
    
            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="" />
        </RadioGroup>
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/radioGroup1"
            android:layout_alignLeft="@+id/textView2"
            android:text="性别:" />
    
        <Button
            android:id="@+id/go"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editText1"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="50dp"
            android:text="计算" />
    
    </RelativeLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:gravity="center_horizontal">
    
        <TextView
            android:id="@+id/sex"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
        <TextView
            android:id="@+id/height"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
        <Button
            android:id="@+id/goback"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="返回" />
    
    </LinearLayout>
  • 相关阅读:
    二分查找
    转:归并排序
    C++ STL stack和queue
    spring-第十九篇AOP面向切面编程之增强处理的优先级
    spring-第十八篇之spring AOP基于XML配置文件的管理方式
    spring-第十七篇之spring AOP基于注解的零配置方式
    spring-第十一篇之SpEL表达式
    spring-第八篇之容器中的bean的生命周期
    spring-第七篇之深入理解容器中的bean
    spring-第二篇ApplicationContext国际化及事件机制
  • 原文地址:https://www.cnblogs.com/mf0819/p/3838653.html
Copyright © 2020-2023  润新知