• [android] 在不同的activity之间传递数据


    新建一个activity,继承Activity

    清单文件中进行配置,添加<activity/>节点

    设置名称 android:name=”.类名” 点 代表的是当前包名,也可以不写

    新建一个布局文件,线性布局,竖直排列

    添加<TextView/>控件,设置控件内容水平居中,android:gravity=”center_horizontal”

    添加一个<Button/>控件,我想让他占据剩余空间的中央,添加一个<RelativeLayout/>的布局,

    <Button/>设置在父控件的中央center_inParent

    第一个界面里面:

    获取到EditText对象的值

    获取Intent对象,调用new出来,通过简便方式直接指定,参数:上下文,类字节码

    调用Intent对象的putExtra(key,val)方法,传递数据,参数:键值对

    调用startActivity(intent)方法,开启

    第二个界面里面:

    获取Intent对象,调用getIntent()方法,获取到传递过来的Intent对象

    调用Intent对象的getStringExtra(name)方法,获取传递的String,参数:键

    获取Random对象,new出来随机数对象

    调用Random对象的nextInt(n),获取随机值,参数:int类型的最大值,0开始要减一

    显示进度条,布局文件增加<ProgressBar/>,设置最大值android:max=”100”,代码中获取到这个ProgressBar对象,调用对象的setProgress(p)方法,参数:上面的随机值

    也可以传递对象,但是这个对象必须序列化

     第一个activity:

    package com.tsh.testrp;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.EditText;
    
    public class MainActivity extends Activity {
        private EditText et_name;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            et_name=(EditText) findViewById(R.id.et_name);
        }
        //测试
        public void click(View v){
            String name=et_name.getText().toString().trim();
            
            Intent intent=new Intent(this,ResultActivity.class);
            intent.putExtra("name", name);
            startActivity(intent);
        }
    }

    第二个activity:

    package com.tsh.testrp;
    
    import java.util.Random;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    
    public class ResultActivity extends Activity {
        private TextView tv_name;
        private ProgressBar pb;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_result);
            //获取展示数据
            tv_name=(TextView) findViewById(R.id.tv_name);
            pb=(ProgressBar) findViewById(R.id.pb_result);
            Intent intent=getIntent();
            String name=intent.getStringExtra("name");
            Random random=new Random();
            int rp=random.nextInt(101);
            tv_name.setText(name+":您的人品值是"+rp);
            pb.setProgress(rp);
            
        }
    }

  • 相关阅读:
    Swagger2 添加HTTP head参数
    获取枚举类型描述
    JS设置cookie、读取cookie、删除cookie
    ES6中Promise的入门(结合例子)
    阮一峰的ES6---Promise对象
    model_util.py
    IfcSpatialElementType
    labelme coco
    python opencv KeyPoint
    IfcSpatialZoneType
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5317426.html
Copyright © 2020-2023  润新知