天天看點

裝備選擇

1) 掌握元件ProgressBar的使用

2) 掌握startActivityForResult方法的使用

<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"

   android:gravity="center"

   tools:context=".MainActivity">

   <ImageView

      android:id="@+id/pet_imgv"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_gravity="center_horizontal"

      android:layout_marginBottom="5dp"

      android:layout_marginTop="30dp"

      android:src="@drawable/baby"/>

   <TextView

      android:id="@+id/pet_dialog_tv"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_gravity="center_horizontal"

      android:layout_marginBottom="25dp"

      android:gravity="center"

      android:text="主人,快給小寶寶購買裝備吧"/>

   <TableLayout

      android:layout_width="fill_parent"

      android:layout_height="wrap_content"

      android:layout_gravity="center"

      android:layout_marginBottom="20dp">

      <TableRow

         android:layout_width="fill_parent"

         android:layout_height="wrap_content">

         <TextView

            android:layout_width="0dip"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="生命值:

            android:textColor="@android:color/black"

            android:textSize="14sp"/>

         <ProgressBar

            android:id="@+id/progressBar1"

            style="?android:attr/progressBarStyleHorizontal"

            android:layout_width="0dip"

            android:layout_height="wrap_content"

            android:layout_gravity="center"

            android:layout_weight="2"/>

         <TextView

            android:id="@+id/tv_life_progress"

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="1"

              android:text="0"

              android:gravity="center"

              android:textColor="#000000"/>

      </TableRow>

      <TableRow

         android:layout_width="fill_parent"

         android:layout_height="wrap_content"

         <TextView

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="1"

              android:text="攻擊力"

              android:textColor="@android:color/black"

              android:textSize="14sp"/>

         <ProgressBar

              android:id="@+id/progressBar2"

              style="?android:attr/progressBarStyleHorizontal"

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="2"/>

         <TextView

              android:id="@+id/tv_attack_progress"

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="1"

              android:text="0"

              android:gravity="center"

              android:textColor="#000000"/>

      </TableRow>

      <TableRow

         android:layout_width="fill_parent"

         android:layout_height="wrap_content"

         <TextView

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="1"

              android:text="靈活"

              android:textColor="@android:color/black"

              android:textSize="14sp"/>

         <ProgressBar

              android:id="@+id/progressBar3"

              style="?android:attr/progressBarStyleHorizontal"

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="2"/>

         <TextView

              android:id="@+id/tv_speed_progress"

              android:layout_width="0dip"

              android:layout_height="wrap_content"

              android:layout_weight="1"

              android:text="0"

              android:gravity="center"

              android:textColor="#000000"/>

      </TableRow>

   </TableLayout>

   <RelativeLayout

      android:layout_width="match_parent"

      android:layout_width="wrap_content"

      android:layout_marginLeft="50dp"

      android:layout_marginRight="50dp"  

      android:layout_marginTop="20dp">

   <Button

      android:id="@+id/btn_baby"    

      android:layout_width="match_parent"

      android:layout_width="wrap_content"

      android:drawablePadding="3dp"

      android:drawableRight="@android:draeable/ic_menu_add"

      android:onClick="click"

      android:text="小寶寶購買裝備"

      android:textSize="14sp"/>

   </RelativeLayout> 

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>

<RealtiveLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/rl"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

    <View

       android:layout_width="30dp"

       android:layout_height="30dp" 

       android:background="@android:drawable/ic_menu_info_details"

       android:layout_centerVertical="true"

       android:layout_alignParentLeft="true"/>

    <TextView

       android:id="@+id/tv_name"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content" 

       android:layout_centerVertical="true"

       android:layout_marginLeft="60dp"

       android:text="商品名稱"

    <LinearLayout

       android:layout_width="wrap_content"

       android:layout_height="wrap_content" 

       android:layout_centerInParent="true"

       android:orientation="vertical">

         <TextView

            android:id="@+id/tv_life"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" 

            android:textSize="13sp"

            android:text="生命力"/>

         <TextView

            android:id="@+id/tv_attack"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" 

            android:textSize="13sp"

            android:text="攻擊力"/>

         <TextView

            android:id="@+id/tv_speed"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" 

            android:textSize="13sp"

            android:text="速度"/>

    </LinearLayout>

</RelativeLayout>

public class ItemInfo implements Serializable{

   private String name;

   private int acctack;

   private int life;

   private int speed;

   public ItemInfo(String name,int acctack,int life,int speed){

      this.name=name;

      this.acctack=acctack;

      this.life=life;

      this.speed=speed;

   }

   public String getrName(){

      return name;

   }

   public void setName(String name){

      this.name=nama;

   }

   public int get Acctack(){

      return acctack;

   }

   public void setAcctack(int acctack){

      this.acctack=acctack;

   }

   public int getLife(){

      return life;

   }

   public void setLife(int life){

      this.life=life;

   }

   public int getSpeed(){

      return speed;

   }

   public String toString(){

      return "[name="+name+",acctack="+acctack+",life="+life+",speed="+speed+"]";

   }

public class ShopActivity extends Acyivity implements OnClickListener{

   private ItemInfo itemInfo;

   protected void onCreat(Bundle savedInstanceState){

      super.onCreat(savedInstanceState);

      setContentView(R.layout.activity_shop);

      itemInfo=new ItemInfo("金劍",100,20,20);

      findViewById(R.id.rl).setOnClickListener(this);

      TextView mLifeTV=(TextView)findViewById(R.id.tv_life);

      TextView mSpeedTV=(TextView)findViewById(R.id.tv_speed);

      TextView mAttackTV=(TextView)findViewById(R.id.tv_attack);

      //TextView顯示字元串,這裡傳入int值編譯不會報錯,運作會出錯

      mLifeTV.setText("生命值+"itemInfo.getLife());

      mNameTV.setText(itemInfo.getName()+"");

      mSpeedTV.setText("靈活度+"itemInfo.getSpeed());

      mAttackTV.setText("攻擊力+"itemInfo.getAcctack());

   }

   @Override

   public void onClick(View v){

       //TODO Auto-generated method stub

       switch(v.getId()){

       case R.id.rl:

          Intent intent=new Intent();

          intent.putExtra("equipment",itemInfo);

          setResult(1,intent);

          finish();

          break;

       }

   }

public class MainActivity extends Activity{

   private ProgressBar mProgressBar1;

   private ProgressBar mProgressBar2;

   private ProgressBar mProgressBar3;

   private TextView mLifeTV;

   private TextView mAttackTV;

   private TextView mSpeedTV;

   protected void onCreat(Bundle savedInstanceState){

      super.onCreat(savedInstanceState);

      setContentView(R.layout.activity_main);

      mLifeTV=(TextView)findViewById(R.id.tv_life_progress);

      mAttackTV=(TextView)findViewById(R.id.tv_attack_progress);

      mSpeedTV=(TextView)findViewById(R.id.tv_speed_progress);        

      initProgress();

   }

   private void initProogress(){

      mProgressBar1=(ProgressBar)findViewById(R.id.progressBar1);

      mProgressBar2=(ProgressBar)findViewById(R.id.progressBar2);

      mProgressBar3=(ProgressBar)findViewById(R.id.progressBar3); 

   }

   //開啟新的activity并且想擷取他的傳回值

   public vlid click(View view){

      Intent intent=new Intent(this,ShopActivity.class);

      startActivityForResult(intent,1);//傳回請求結果,請求碼為1

   }

   @Override

   protected void onActivityResult(int requestCode,int resultCode,Intent data){

      super.onActivityResult(requestCode,resultCode,data);

      if(data!=null){

         //判斷結果碼是否等于1,等于1為寶寶添加裝備

         if(resultCode==1){

            if(requestCode==1){

               ItemInfo info=

                    (ItemInfo)data.getSerializableExtra("equipment");

               //gengxin ProgressBar的值

               updateProgress(info);

             }

         }

     }

   }

   //更新ProgressBar的值

   private void updateProgress(ItemInfo info){

      int progress1=mProgressBar1.getProgress();

      int progress2=mProgressBar2.getProgress();

      int progress3=mProgressBar3.getProgress();

      mProgressBar1.setProgress(progress1+info.getLife());

      mProgressBar2.setProgress(progress2+info.getAcctack());

      mProgressBar3.setProgress(progress3+info.getSpeed());

      mLifeTV.setText(mProgressBar1.getProgress()+"");

      mAttackTV.setText(mProgressBar2.getProgress()+"");

      mSpeedTV.setText(mProgressBar3.getProgress()+"");

    }

  }

<activity>

    android:name="cn.itcast.select.MainActivity"

    android:lable="@string/app_name">

    <intent_filter>

        <action android:name="android.intent.action.MAIN"/>

        <category android:name="android.intent.category.LAUNCHER"/>

    </intent-filter>

    <activity android:name="cn.itcast.select.ShopActivity">