安卓案例:人品計算器
阿新 • • 發佈:2018-04-20
net abs put col tool 姓名 nta activity public
顯示意圖跳轉的運用
兩個簡單的布局:
main
<LinearLayout 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:orientation="vertical" tools:context=".MainActivity" ><EditText android:id="@+id/et_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入姓名:" /> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <RadioButton android:id="@+id/rb_male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" /> <RadioButton android:id="@+id/rb_female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="25dp" android:text="女" /> </RadioGroup> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="計算" /> </LinearLayout>
result:
<?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" > <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv_sex" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv_result" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
MainActivity:
package org.dreamtech.game; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends Activity { private EditText et_name; private RadioGroup rg_group; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_name = (EditText) findViewById(R.id.et_name); rg_group = (RadioGroup) findViewById(R.id.radioGroup1); } public void click(View v) { String name = et_name.getText().toString().trim(); if (TextUtils.isEmpty(name)) { Toast.makeText(getApplicationContext(), "請輸入姓名", Toast.LENGTH_LONG) .show(); return; } int radiobuttonID = rg_group.getCheckedRadioButtonId(); int sex = 0; switch (radiobuttonID) { case R.id.rb_male: sex = 1; break; case R.id.rb_female: sex = 2; break; } if (sex == 0) { Toast.makeText(getApplicationContext(), "請選擇性別", Toast.LENGTH_LONG) .show(); return; } Intent intent = new Intent(this, ResultActivity.class); intent.putExtra("name",name); intent.putExtra("sex", sex); startActivity(intent); } }
ResultActivity:
package org.dreamtech.game; import java.io.UnsupportedEncodingException; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.widget.TextView; public class ResultActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); TextView tv_name = (TextView) findViewById(R.id.tv_name); TextView tv_sex = (TextView) findViewById(R.id.tv_sex); TextView tv_result = (TextView) findViewById(R.id.tv_result); Intent intent = getIntent(); String name = intent.getStringExtra("name"); byte[] bytes = name.getBytes(); int sex = intent.getIntExtra("sex", 0); tv_name.setText(name); switch (sex) { case 1: tv_sex.setText("男"); try { bytes = name.getBytes("gbk"); } catch (UnsupportedEncodingException e) { } break; case 2: tv_sex.setText("女"); try { bytes = name.getBytes("utf-8"); } catch (UnsupportedEncodingException e) { } break; } int total = 0; for (byte b : bytes) { int number = b & 0xff; total += number; } int score = Math.abs(total) % 100; if (score > 90) { tv_result.setText("您的人品很好"); } else if (score > 80) { tv_result.setText("您的人品不錯"); } else if (score > 60) { tv_result.setText("您的人品一般"); } else { tv_result.setText("您的人品很差"); } } }
安卓案例:人品計算器