一只大二狗的Android历程--Activity间数据交换的实例
来源:互联网 发布:mac用的vpn 编辑:程序博客网 时间:2024/05/16 19:29
2017年 2月26日 10:25 AM
昨晚上敲了一晚上的代码,又参照了教材上的那个Activity数据交换的实例,自己改了一个,做了一个可以登录的角色管理,功能很简单,首先呈现的是注册界面Main.java,然后输入名字,密码和性别以后点击“Register”进入SecAct.java,点击按钮“Go TO MY CHACATER”进入CharAct.java,然后点击GO TO SHOP,购买装备,自动返回,发现属性已经改变了
效果图:
这个应用相比课本上的实例多了一些功能
--- 可以实现注册登录
--- 可以传递注册人的信息
--- 当选择的性别不同时,分配的角色信息是不同的(最后一图)
现在将源代码贴在这里(activity_main.xml和activity_secact.xml没有变化,可以去我上一篇博文里去找):
activity_char.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" /><ImageView android:id="@+id/iv" android:layout_width="120dp" android:layout_height="150dp" android:layout_gravity="center" android:layout_marginTop="50dp" android:background="@drawable/soldier76"/> <TextView android:id="@+id/CN" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="5dp" android:textSize="23sp" android:text="Soldier76" /> <TextView android:id="@+id/status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="3dp" android:text="Wonderful" android:textColor="#7CFC00"/> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center"> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Health" android:textSize="20sp" android:layout_weight="1" /> <ProgressBar android:id="@+id/pro_health" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_weight="2" android:indeterminateTint="#7CFC00" android:indeterminateTintMode="src_atop"/> <TextView android:id="@+id/status_hea" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="3" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Power" android:textSize="20sp" android:layout_weight="1" /> <ProgressBar android:id="@+id/pro_power" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_weight="2" android:indeterminateTint="#6495ED" android:indeterminateTintMode="src_atop"/> <TextView android:id="@+id/status_pow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="3" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sensitivity" android:textSize="20sp" android:layout_weight="1" /> <ProgressBar android:id="@+id/pro_sen" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_weight="2" android:indeterminateTint="#EEEE00" android:indeterminateTintMode="src_atop"/> <TextView android:id="@+id/status_sen" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="3" /> </TableRow> </TableLayout><Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="20dp" android:text="Go to Shop"/></LinearLayout>
activity_shop.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:id="@+id/rr" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Item" android:layout_marginLeft="60dp" android:layout_marginTop="20dp" android:textSize="20sp" android:layout_centerVertical="true" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/item" android:layout_marginLeft="10dp" android:layout_centerInParent="true" android:orientation="vertical"> <TextView android:id="@+id/health" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Health" android:textSize="23sp"/> <TextView android:id="@+id/power" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Power" android:textSize="23sp"/> <TextView android:id="@+id/sen" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sen" android:textSize="23sp"/> </LinearLayout></RelativeLayout>
新建一个package,里面新建一个ItemInfo的类,用来存储装备信息
ItermInfo.java
package cn.itcast.domain;import java.io.Serializable;/** * Created by li124 on 2017/2/25. */public class ItemInfo implements Serializable { private String name; private int health; private int power; private int sen; public ItemInfo(String name,int health,int power,int sen){ this.name=name; this.health=health; this.power=power; this.sen=sen; } public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getHealth(){ return health; } public void setHealth(int health){ this.health=health; } public int getPower(){ return power; } public void setPower(int power){ this.power=power; } public int getSen(){ return sen; } public void setSen(int sen){ this.sen=sen; } public String toString(){ return "[name="+name+"power="+power+"sen="+sen+"]"; }}
MainActivity.java里的代码有变化,重新贴出来
package com.eee.eeeee;import android.app.Activity;import android.content.Intent;import android.inputmethodservice.Keyboard;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;import android.widget.Toast;import java.util.Timer;import java.util.TimerTask;import static android.R.attr.data;import static android.R.attr.logo;import static com.eee.eeeee.R.styleable.View;public class MainActivity extends AppCompatActivity{ public EditText et1,et2; public RadioButton rb1,rb2; public static final int RC=1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b1 =(Button)findViewById(R.id.BB1); Button b2 =(Button)findViewById(R.id.BB2); et1 =(EditText)findViewById(R.id.et_UN); et2 =(EditText)findViewById(R.id.et_PW); rb1 =(RadioButton)findViewById(R.id.man); rb2 =(RadioButton)findViewById(R.id.woman); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent =new Intent(MainActivity.this,SecACT.class); intent.putExtra("un",et1.getText().toString().trim()); startActivity(intent); } }); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Intent intent =new Intent(MainActivity.this,SecACT.class); passData(); Toast.makeText(MainActivity.this,"Regist Successful!",Toast.LENGTH_SHORT).show(); //startActivity(intent); } });// b2.setOnClickListener(new View.OnClickListener() {// @Override// public void onClick(View view) {// startActivity(new Intent(MainActivity.this,SecACT.class));// finish();// }// }); }// @Override// protected void onActivityResult(int requestCode, int resultCode, Intent data) {// if(requestCode==RC){// switch (resultCode){// case RESULT_OK:// String dataString=data.getStringExtra("ED");// Log.i("----------->", dataString);// }// }// } public void passData() { /**Intent**/ Intent intent = new Intent(MainActivity.this, SecACT.class); intent.putExtra("un", et1.getText().toString().trim()); intent.putExtra("pd", et2.getText().toString().trim()); /**Bundle**/// Bundle bundle =new Bundle();// bundle.putString("un",et1.getText().toString().trim());// bundle.putString("pd",et2.getText().toString().trim()); String sex = ""; if (rb1.isChecked()) { sex = "Man"; } else if (rb2.isChecked()) { sex = "Woman"; } /**Intent**/ intent.putExtra("sex", sex); startActivity(intent); }// /**Bundle**///// bundle.putString("sex",sex);//// intent.putExtras(bundle);// } /**Double Click BackButton to Exit**/ private long firstTime=0; @Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode){ case KeyEvent.KEYCODE_BACK: long secondTime=System.currentTimeMillis(); if(secondTime-firstTime>2000){ Toast.makeText(MainActivity.this,"Press Again to Exit!",Toast.LENGTH_SHORT).show(); firstTime=secondTime; return true; }else{ finish(); } break; } return super.onKeyUp(keyCode, event); }//one way to}
SecAct.java里的代码有变化,也重新贴出来
package com.eee.eeeee;import android.os.Bundle;import android.content.Intent;import android.inputmethodservice.Keyboard;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import static com.eee.eeeee.R.styleable.View;/** * Created by li124 on 2017/2/24. */public class SecACT extends AppCompatActivity { public TextView tv1,tv2,tv3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_secact); Button b1=(Button)findViewById(R.id.back1);// intent.putExtra("ED","Hello World");// setResult(RESULT_OK,intent);// b1.setOnClickListener(new View.OnClickListener() {// @Override// public void onClick(View view) {//// finish();// }// }); tv1=(TextView)findViewById(R.id.name); tv2=(TextView)findViewById(R.id.pass); tv3=(TextView)findViewById(R.id.sex); Intent i =getIntent(); String name =i.getStringExtra("un"); String pass = i.getStringExtra("pd"); String sex =i.getStringExtra("sex"); tv1.setText("Your UserName: "+name); tv2.setText("Your PassWord: "+pass+" (Please Do not tell Others)"); tv3.setText("Your Sex: "+sex); /**Bundle**/// Bundle bundle=intent.getExtras();// String name=bundle.getString("un");// String pass=bundle.getString("pd");// String sex1=bundle.getString("sex");// tv1.setText("Your UserName: "+name);// tv2.setText("Your PassWord: "+pass+" (Please Do not tell Others)");// tv3.setText("Your Sex: "+sex1); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(SecACT.this,CharAct.class); intent.putExtra("name",tv1.getText().toString().trim()); if(getData().equals("Woman")){ intent.putExtra("code","2"); }else if(getData().equals("Man")){ intent.putExtra("code","1"); } Log.i("---->",getData()); startActivity(intent); } }); } public String getData(){ Intent in =getIntent(); String x=in.getStringExtra("sex"); return x; }}
CharAct.java
package com.eee.eeeee;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;import cn.itcast.domain.ItemInfo;import static com.eee.eeeee.R.drawable.soldier76;/** * Created by li124 on 2017/2/25. */public class CharAct extends AppCompatActivity { private ProgressBar hp,pp,sp; private TextView sh,stvp,ss; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_char); sh=(TextView)findViewById(R.id.status_hea); stvp=(TextView)findViewById(R.id.status_pow); ss=(TextView)findViewById(R.id.status_sen); Button b=(Button)findViewById(R.id.button); TextView tv=(TextView)findViewById(R.id.name); ImageView iv =(ImageView)findViewById(R.id.iv); TextView tv2=(TextView)findViewById(R.id.CN); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(CharAct.this,ShopAct.class); startActivityForResult(intent,1); } }); Intent i =getIntent(); String name=i.getStringExtra("name"); String code=i.getStringExtra("code"); Log.i("--->",code); if(code.equals("1")) { tv.setText(name + "`s Character is Soldier76"); iv.setBackground(getDrawable(R.drawable.soldier76)); tv2.setText("Soldier76"); }else if(code.equals("2")){ tv.setText(name + "`s Character is Mercy"); iv.setBackground(getDrawable(R.drawable.angel)); tv2.setText("Mercy"); } initProgress(); } private void initProgress(){ int x=0; hp=(ProgressBar)findViewById(R.id.pro_health); pp=(ProgressBar)findViewById(R.id.pro_power); sp=(ProgressBar)findViewById(R.id.pro_sen); sh=(TextView)findViewById(R.id.status_hea); stvp=(TextView)findViewById(R.id.status_pow); ss=(TextView)findViewById(R.id.status_sen); Button b=(Button)findViewById(R.id.button); hp.setMax(100); pp.setMax(100); sp.setMax(100); hp.setProgress(30); pp.setProgress(20); sp.setProgress(80); sh.setText(hp.getProgress()+""); stvp.setText(pp.getProgress()+""); ss.setText(sp.getProgress()+""); x=hp.getProgress(); judegeStatus(x); } @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){ if(data!=null){ if(resultCode==1){ if(requestCode==1){ ItemInfo info =(ItemInfo)data.getSerializableExtra("equip"); updateProgress(info); } } } } private void updateProgress(ItemInfo info){ int x=0; int p1=hp.getProgress(); int p2=pp.getProgress(); int p3=sp.getProgress(); hp.setProgress(p1+info.getHealth()); pp.setProgress(p2+info.getPower()); sp.setProgress(p3+info.getSen()); sh.setText(hp.getProgress()+""); stvp.setText(pp.getProgress()+""); ss.setText(sp.getProgress()+""); x=hp.getProgress(); judegeStatus(x); } public void judegeStatus(int x){ TextView tx=(TextView)findViewById(R.id.status); if(x>=50){ tx.setTextColor(Color.rgb(255, 255, 0)); tx.setText("Good"); }else if(x>=90&&x<=100){ tx.setTextColor(Color.rgb(0, 255, 0)); tx.setText("Wonderful"); }else if(x<25&&x>=0){ tx.setTextColor(Color.rgb(255, 0, 0)); tx.setText("Weak"); } }}
ShopAct.java
package com.eee.eeeee;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;import cn.itcast.domain.ItemInfo;/** * Created by li124 on 2017/2/25. */public class ShopAct extends AppCompatActivity implements View.OnClickListener{ private ItemInfo itemInfo; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shop); itemInfo =new ItemInfo("Tactical eyepiece",80,100,60); findViewById(R.id.rr).setOnClickListener(this); TextView h=(TextView)findViewById(R.id.health); TextView p=(TextView)findViewById(R.id.power); TextView s=(TextView)findViewById(R.id.sen); TextView n=(TextView)findViewById(R.id.item); n.setText(itemInfo.getName()+""); h.setText("Health++"+itemInfo.getHealth()); p.setText("Power++"+itemInfo.getPower()); s.setText("Sen++"+itemInfo.getSen()); } @Override public void onClick(View v){ switch (v.getId()){ case R.id.rr: Intent intent =new Intent(); intent.putExtra("equip",itemInfo); setResult(1,intent); finish(); break; } }}
以上就是这个程序的源代码,今天学习了数据的存储以后,准备对这个程序进行丰富
1 0
- 一只大二狗的Android历程--Activity间数据交换的实例
- 一只大二狗的Android历程--Activity之间的简单数据传递
- 一只大二狗的Android历程--Snackbar的使用
- 一只大二狗的Android历程--JSon解析实例_天气预报
- 一只大二狗的Android历程--开端
- 一只大二狗的Android历程--OnClickListener & Toast
- 一只大二狗的Android历程--国际化(作业)
- 一只大二狗的Android历程--自定义Toast样式
- 一只大二狗的Android历程--JSon解析
- 一只大二狗的Android历程--PNG图片的Crunching Cruncher错误解决办法
- 一只大二狗的Android历程--文件输入输出流 & SharedPreference
- 一只大二狗的Android历程--简单自定义按钮样式(Custom Button Style)
- 一只大二狗的Android历程--自定义按钮样式(补充)
- 一只大二狗的Android历程--SQLite数据库CRUD操作
- android Activity之间的数据交换
- Android学习历程(一)——Activity的启动/关闭和内部的数据传递
- Android:Activity+Fragment及它们之间的数据交换(一)
- Android:Activity+Fragment及它们之间的数据交换(一)
- draw2d_Demo_code
- LeetCode题解(Week 1):Container With Most Water
- 几分钟了解JAVA语言设计系统
- jsp+servlet实现最基本的注册登陆功能
- 高数小结
- 一只大二狗的Android历程--Activity间数据交换的实例
- 贪婪算法
- 输出HTML,浏览器打开时还是乱码问题的解决
- 硬盘的整体结构
- Hdu 3572Task Schedule
- 将字符串反转输出
- 一些有用的链接
- c3p0数据源
- Go方法定义