文章标题

人品计算器小案例开发
下面的这个代码主要是学习了在Android中如何开发多个页面和进行页面之间传递数据
主页面开发代码如下:

package com.hailong.basemodel;

import com.hailong.compute.R;

import android.content.Intent;
import android.os.Bundle;
//好像这个v7会创建出二个文件
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
    // 创建用户名EditText控件
    private EditText et_name;
    // 得到我们单选框的组对象
    private RadioGroup rg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 找到我们的关心的控件
        et_name = (EditText) findViewById(R.id.et_name);
        rg = (RadioGroup) findViewById(R.id.rg);
    }

    // 实现我们的人品计算器的点击方法
    public void compute_click(View v) {
        // 拿到我们的输入的性名
        String name = et_name.getText().toString().trim();
        // 拿到我们的设置的性别的值
        int sex = rg.getCheckedRadioButtonId();
        // 定义一个值来控制我们选择的性别
        int data = 0;
        // 进行判断一下我们的选择性别是那个
        switch (sex) {
        case R.id.rb_female:
            // data=1表示选择的是一个女
            data = 1;
            break;
        case R.id.rb_male:
            // data=2表示选择的是一个男
            data = 2;
            break;

        case R.id.rb_per:
            // data=3表示选择的是一个人妖
            data = 3;
            break;

        }



        if(TextUtils.isEmpty(name)|| data==0){
            //打个吐司
            Toast.makeText(getApplicationContext(),"你的用户名或性别没有选,请你选上!!",0).show();
            return ;
        }

        // 定义一个意图对象
        Intent intent = new Intent(this, ResultActivity.class);
        //把我们的拿到的数据发送给我们的ResultActivity当中,其中这个putExtra方法中可以传递任何类型给我们的ResultActivity的
        //发送name给我们的ResultActivity页面
        intent.putExtra("name",name);
        //发送sex给我们的ResultActivity页面 
        intent.putExtra("sex",data);



//      **//方式二:但是不幸的是这种方式不可以,我也知道为什么这种不可以,如果有大神知道的欢迎交流**
//      //上面的这种方式要写太多的代码了,下面的这种就不那么多代码了
//      RadioButton rb_sex=(RadioButton) findViewById(sex);
//      //得到这个按键的数据
//      String sex_name=rb_sex.getText().toString().trim();
//      if (TextUtils.isEmpty(name) || TextUtils.isEmpty(sex_name)) {
//          // 打个吐司
//          Toast.makeText(getApplicationContext(), "你的用户名或性别没有选,请你选上!!", 0).show();
//          return;
//      }
//
//      // 定义一个意图对象
//      Intent intent = new Intent(this, ResultActivity.class);
//      // 把我们的拿到的数据发送给我们的ResultActivity当中,其中这个putExtra方法中可以传递任何类型给我们的ResultActivity的
//      // 发送name给我们的ResultActivity页面
//      intent.putExtra("name", name);
//      // 发送sex给我们的ResultActivity页面
//      intent.putExtra("sex",sex_name);

        // 开启我们的意图对象
        startActivity(intent);

    }
}

跳转页面开发代码如下:

package com.hailong.basemodel;

import java.io.UnsupportedEncodingException;

import com.hailong.compute.R;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class ResultActivity extends Activity {
    // 用来显示名称的控件
    private TextView tv_name;
    // 用来显示性别的控件
    private TextView tv_sex;
    // 用业显示结果的控件
    private TextView tv_result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 设置当前这个页面的内容
        setContentView(R.layout.activity_result);

        // 拿到我们的想要的控件
        tv_name = (TextView) findViewById(R.id.tv_username);
        tv_sex = (TextView) findViewById(R.id.tv_sex);
        tv_result = (TextView) findViewById(R.id.tv_text);

        // 拿到我们的MainActivity发送过来的数据
        // 得到让我们的这个页面启动的意图对象
        Intent intent = getIntent();
        // 得到这个意图发送的数据,这个取数据是根据我们的发送过来的数据类型来取出这个数据
        // 拿到我们的发送过来的名字
        String name = intent.getStringExtra("name");
        // 拿到发送过来的性别 defaultValue表示的是默认值,也就是如果没有数据,就是用这个数据
        int sex = intent.getIntExtra("sex", 0);
//      String sex=intent.getStringExtra("sex");
        byte[] bt=null;
        // 然后显示这个名字数据
        tv_name.setText(name);
//      tv_sex.setText(sex);
        // 显示性别数据
        try {
            switch (sex) {
            case 1:
                bt=name.getBytes("utf-8");
                tv_sex.setText("女");
                break;
            case 2:
                bt=name.getBytes("gbk");
                tv_sex.setText("男");
                break;
            case 3:
                bt=name.getBytes("iso-8859-1");
                tv_sex.setText("人妖");
                break;
            default:
                Toast.makeText(getApplicationContext(), "你的性别数据传递过程有问题", 1).show();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        //下面开始计算我们的真正的人品代码
        //一些市面上的这类软件都是用随机数来做的,但是我们不用这种方式,而是用下面的这种方式
//      byte[] bt=name.getBytes();
        //计算总的结果
        int total=0;
        //进行做个与运算就可以
        for(byte t:bt){
            int number=t&0xff;
            total+=number;
        }

        //把我们的这个值收缩到0-100之间
        int result=Math.abs(total%100);
        if(result>=90){
            tv_result.setText("你的人品相当的好,你不出一年肯定会发大财的!!");
        }else if(result>=80&&result<90){
            tv_result.setText("你的人品还可以,你不出二年肯定会发大财的!!");
        }else if(result>=60 && result<80){
            tv_result.setText("你的人品可以,你不出5年肯定会发大财的!!");
        }else{
            tv_result.setText("你的人品有问题,你不出50年肯定会发大财的!!");
        }


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值