安卓项目之纸牌游戏之四 游戏规则类

简介: 安卓项目之纸牌游戏之四 游戏规则类
package com.example.azhipai;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class Mainactivity1 extends Activity {
  private int[] paire = new int[13];
  private int imgpath [] =new int[]{R.drawable.img14,R.drawable.img15,R.drawable.img3,R.drawable.img4,
      R.drawable.img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.img9,R.drawable.img10,R.drawable.img11
      ,R.drawable.img12,R.drawable.img13};
  private int [] cmsjs5=new int [5];//5局时的随机数
  private int [] cmsjs7=new int [7];//7局时的随机数
  private String[]cmsjs5index=new String[5];
  private String[]cmsjs7index=new String[7];//lvcmsjs加载的数据
  private String xz;//获取的edtcm的文本
  private ImageView ivcpu,ivcm;
  private TextView tvshow;
  private EditText edtcm,edtusename;
  private Button btnesc,btnok,btnlogin,btnget;
  private int szcpu,szcm,cmexam,cpuexam,gamecishu,aa,cpusj;//电脑比牌用的数字,用户比牌用的数字。aa作用于类型转换=xz
  private MyDatabaseHelper mydbhelper;
  private String usename;
  private ListView lvZhipai,lvcmsjs;
  private List<Zhipai> zhipai;
  protected boolean gamesz=false;//关于游戏的5局制和七局制
    @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.usenamesave);
          btnlogin=(Button)findViewById(R.id.btnlogin);
          edtusename=(EditText)findViewById(R.id.edtusename);
          btnlogin.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
          setusename();
        }});
          }
    //设置登录名的方法
    protected void setusename() {
      mydbhelper=new MyDatabaseHelper(Mainactivity1.this, "examsto.db", null, 2);
        mydbhelper.getWritableDatabase();
        usename=edtusename.getText().toString();
        if(!usename.equals("")){//输入用户名不能空
        SQLiteDatabase db=mydbhelper.getWritableDatabase();//创建数据库
        ContentValues cv=new ContentValues();
        cv.clear();
        cv.put("name",usename);//插入name列中
        cv.put("examcm", 0);//插入examcm列中
        long l1=db.insert("exam", null, cv);
        if(l1!=-1){//判断插入是否成功
          Toast.makeText(Mainactivity1.this, "插入数据成功", Toast.LENGTH_SHORT).show();
          //出欢迎游戏的对话框
          AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
            aldg.setIcon(R.drawable.ic_launcher);
            aldg.setTitle("提示");
            aldg.setMessage("你好"+usename+"欢迎进入纸牌游戏!");
            aldg.setButton(DialogInterface.BUTTON_POSITIVE, "进入", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                setContentView(R.layout.activity_main);//转换页面
                    ivcpu=(ImageView) findViewById(R.id.ivcpu);
                    ivcm=(ImageView) findViewById(R.id.ivcm);
                    tvshow=(TextView)findViewById(R.id.tvshow);
                    edtcm=(EditText) findViewById(R.id.edtcm);
                    lvcmsjs=(ListView) findViewById(R.id.lvcmsz);
                    btnget=(Button)findViewById(R.id.btnget);
                    star();//游戏初始化
            }
          });
            aldg.show();  
        }
          }else{
            Toast.makeText(Mainactivity1.this, "用户名不能为空!", Toast.LENGTH_SHORT).show();
            return;
        }
    }
    //游戏初始化
    private void star() {
      cmexam=0;cpuexam=0;gamecishu=0;gamesz=false;
      btnget.setVisibility(View.VISIBLE);//获取按钮为可见
      final String[] s = new String[] {"开始游戏", "游戏设置", "排行榜"};  
        tvshow.setText(R.string.show1);//设置tvshow的文本为游戏规玩法
        Builder bdr=new AlertDialog.Builder(Mainactivity1.this);
        bdr.setIcon(R.drawable.ic_launcher);
        bdr.setTitle("纸牌游戏");
        bdr.setItems(s, new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          if(s[which].equals("游戏设置")){  //s【which】即为选择项的问本 
          gameset();//显示游戏设置对话框
          }
          else if(s[which].equals("排行榜")){Button1();  }
          else if(s[which].equals("开始游戏")){
             getcmpai();//选择用户得到牌的方式
             regame();//为再次游戏
             }
          Toast.makeText(Mainactivity1.this, s[which], Toast.LENGTH_SHORT).show();
        }
      });
        bdr.show();
        getcmpai();
        ok();//确定按钮本项目的核心
    }
//    游戏设置
    protected void gameset() {
      final String gameset[]=new String[]{"五局制","七局制"};
        Builder bdr=new AlertDialog.Builder(Mainactivity1.this);
        bdr.setIcon(R.drawable.ic_launcher);
        bdr.setItems(gameset, new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          if(gameset[which].equals("五局制")){  
            gamesz=false;
            regame();
          }
          else if(gameset[which].equals("七局制")){  
            gamesz=true;
            regame();
          }
        }
      });
        bdr.show();
    }
    private void getcmpai() {
      btnget=(Button)findViewById(R.id.btnget);
        btnget.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(gamesz==true){
          paicmsjs7();
        }
        else if(gamesz==false){
          paicmsjs5();
        }
        btnget.setVisibility(View.INVISIBLE);
        }
      });
    }
    protected void paicmsjs7() {
      // TODO Auto-generated method stub
        lvcmsjs=(ListView) findViewById(R.id.lvcmsz);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cmsjs7index);//使用系统已经实现好的xml文件simple_list_item_1
        lvcmsjs.setAdapter(adapter);
        AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
        aldg.setIcon(R.drawable.ic_launcher);
        aldg.setTitle("提示");
        aldg.setMessage("恭喜你获得了7个数字!");
        aldg.setButton(DialogInterface.BUTTON_NEGATIVE,"确定",new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
      }});
        aldg.show();
    }
    protected void paicmsjs5() {
      // TODO Auto-generated method stub
      lvcmsjs=(ListView) findViewById(R.id.lvcmsz);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cmsjs5index);//使用系统已经实现好的xml文件simple_list_item_1
        lvcmsjs.setAdapter(adapter);
        AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
        aldg.setIcon(R.drawable.ic_launcher);
        aldg.setTitle("提示");
        aldg.setMessage("恭喜你获得了5个数字!");
        aldg.setButton(DialogInterface.BUTTON_NEGATIVE,"确定",new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
      }});
        aldg.show();
    }
//    重新开始游戏
    protected void regame() {
      // TODO Auto-generated method stub
      //五局制随机数
      creatRandom5();//产生不同的随机数
      creatRandom7();
    }
     private int[] creatRandom5() {
          int j = 0;
            int number = 13;// 控制随机数产生的范围
            List arr = new ArrayList();
            for (int i = 0; i < number; i++)
             arr.add(i + 1);// 为ArrayList添加元素
            for (j = 0; j < cmsjs5.length; j++)
            {
             int index = (int) (Math.random() * number);// 产生一个随机数作为索引
             cmsjs5[j] = (Integer) arr.get(index);
             arr.remove(index);// 移除已经取过的元素
             number--;// 将随机数范围缩小1      
             cmsjs5index[j]="数字: "+cmsjs5[j];
            }
            return cmsjs5;
           } 
     private int[] creatRandom7() {
           int j = 0;
               int number = 13;// 控制随机数产生的范围
               List arr = new ArrayList();
               for (int i = 0; i < number; i++)
                arr.add(i + 1);// 为ArrayList添加元素
               for (j = 0; j < cmsjs7.length; j++)
               {
                int index = (int) (Math.random() * number);// 产生一个随机数作为索引
                cmsjs7[j] = (Integer) arr.get(index);
                arr.remove(index);// 移除已经取过的元素
                number--;// 将随机数范围缩小1      
                cmsjs7index[j]="数字: "+cmsjs7[j];
               }
               return cmsjs7;
              }
//    游戏规则
    public void game(){
      gamecishu+=1;
      if(gamecishu<7 &&gamesz==true){
        if(szcm>szcpu){tvshow.setText("恭喜你获胜了!分数+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
        else if(szcm<szcpu){tvshow.setText("你失败了呢,再接再厉!");cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
        else if(szcm==szcpu){tvshow.setText("打了个平手,都不得分!");}
        AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
        aldg.setIcon(R.drawable.ic_launcher);
        aldg.setTitle("提示");
        aldg.setMessage("您已经进行了"+gamecishu+"场游戏了!\n"+"您的得分:"+cmexam+"\nAI得分:"+cpuexam+"是否继续?");
        aldg.setButton(DialogInterface.BUTTON_POSITIVE, "继续游戏", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          gogame();//继续游戏重置牌面
        }
      });
        aldg.setButton(DialogInterface.BUTTON_NEGATIVE, "退出游戏", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          finish();
        }
      });
        aldg.setButton(DialogInterface.BUTTON_NEUTRAL, "查看排行榜", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
          Button1();//调出排行榜界面
        }
      });
        aldg.show();
        caozuodata();//实现数据的更新
      }else if(gamecishu==7&&gamesz==true){//当gamesz为true时是七局制游戏
        if(szcm>szcpu){tvshow.setText("恭喜你获胜了!分数+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
          else if(szcm<szcpu){tvshow.setText("你失败了呢,再接再厉!");cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
          else if(szcm==szcpu){tvshow.setText("打了个平手,都不得分!");}
        caozuodata();//实现数据的更新
        AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
          aldg.setIcon(R.drawable.ic_launcher);
          aldg.setTitle("提示");
          aldg.setMessage("您已经进行了"+gamecishu+"场游戏了!\n"+"您的得分:"+cmexam+"\nAI得分:"+cpuexam+"这是最后一场游戏。");
          aldg.setButton(DialogInterface.BUTTON_POSITIVE, "查看计分表", new OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            Button1();//调出排行榜界面
          }
        });
          aldg.setButton(DialogInterface.BUTTON_NEUTRAL, "重开游戏", new OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            star();//游戏初始化界面
          }
        });
          aldg.show();
      }
      if(gamecishu<5 &&gamesz==false){
          if(szcm>szcpu){tvshow.setText("恭喜你获胜了!分数+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
          else if(szcm<szcpu){tvshow.setText("你失败了呢,再接再厉!");cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
          else if(szcm==szcpu){tvshow.setText("打了个平手,都不得分!");}
          caozuodata();//实现数据的更新
          AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
          aldg.setIcon(R.drawable.ic_launcher);
          aldg.setTitle("提示");
          aldg.setMessage("您已经进行了"+gamecishu+"场游戏了!\n"+"您的得分:"+cmexam+"\nAI得分:"+cpuexam+"是否继续?");
          aldg.setButton(DialogInterface.BUTTON_POSITIVE, "继续游戏", new OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            gogame();//继续游戏重置牌面
          }
        });
          aldg.setButton(DialogInterface.BUTTON_NEGATIVE, "退出游戏", new OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            finish();
          }
        });
          aldg.setButton(DialogInterface.BUTTON_NEUTRAL, "查看排行榜", new OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            Button1();//调出排行榜界面
          }
        });
          aldg.show();
          caozuodata();//实现数据的更新
        }else if(gamecishu==5&&gamesz==false){
          if(szcm>szcpu){tvshow.setText("恭喜你获胜了!分数+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
            else if(szcm<szcpu){tvshow.setText("你失败了呢,再接再厉!");cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
            else if(szcm==szcpu){tvshow.setText("打了个平手,都不得分!");}
          AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
            aldg.setIcon(R.drawable.ic_launcher);
            aldg.setTitle("提示");
            aldg.setMessage("您已经进行了"+gamecishu+"场游戏了!\n"+"您的得分:"+cmexam+"\nAI得分:"+cpuexam+"这是最后一场游戏。");
            aldg.setButton(DialogInterface.BUTTON_POSITIVE, "查看计分表", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
              Button1();
            }
          });
            aldg.setButton(DialogInterface.BUTTON_NEUTRAL, "重开游戏", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
              star();
            }
          });
            aldg.show();
        }
//        finalyexam(); 不知道能不能用上
      }
     protected void gogame() {
      // TODO Auto-generated method stub
        edtcm.setText("");
          ivcpu.setImageDrawable(getResources().getDrawable(R.drawable.img16));
          ivcm.setImageDrawable(getResources().getDrawable(R.drawable.img16));
          ok();
    }
    private void finalyexam() {
      // TODO Auto-generated method stub
    }
    private void caozuodata(){
      //更新数据
      SQLiteDatabase db2=mydbhelper.getWritableDatabase();
      ContentValues cv2=new ContentValues();
      cv2.put("examcm", cmexam);
      int i3=db2.update("exam", cv2, "name=?", new String[]{usename});//当用户名等于刚开始输入的用户名是更新
      if(i3!=0){
        Toast.makeText(Mainactivity1.this, "录入成功", Toast.LENGTH_SHORT).show();
      }
     }
    //确定按钮的点击事件通过此按钮实现选牌,并进行游戏起到链接上下文的作用
    private void ok(){
        btnok=(Button)findViewById(R.id.buttonok);
          btnok.setOnClickListener(new View.OnClickListener() {
            @Override
          public void onClick(View v) {
              if(gamesz==true){
              reshuz7();
              }else if(gamesz==false){
              reshuz5();
              }
            }
        });
        }
    protected void reshuz7() {
      // TODO Auto-generated method stub
      for (int i=0;i<cmsjs7index.length;i++) {
        xz=edtcm.getText().toString();
          if (xz.equals(""+cmsjs7[i])) {
            cmsjs7[i]=0;
            cmsjs7index[i]="";
          lvcmsjs.setAdapter(null);
          ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cmsjs7index);//使用系统已经实现好的xml文件simple_list_item_1
            lvcmsjs.setAdapter(adapter1);
            Toast.makeText(Mainactivity1.this, "成功使用此牌", Toast.LENGTH_SHORT).show();
            paicm();
            return;
          }else  {
            //Toast.makeText(Mainactivity1.this, "对不起你没有此牌", Toast.LENGTH_SHORT).show();
            tvshow.setText("");
            }
    }
      }
    protected void reshuz5() {//本来是重置listview但是并未实现
      for (int i=0;i<cmsjs5index.length;i++) {
        xz=edtcm.getText().toString();
          if (xz.equals(""+cmsjs5[i])) {
            cmsjs5[i]=0;
            cmsjs5index[i]="";
          lvcmsjs.setAdapter(null);
          ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cmsjs5index);//使用系统已经实现好的xml文件simple_list_item_1
            lvcmsjs.setAdapter(adapter1);
            Toast.makeText(Mainactivity1.this, "成功使用此牌", Toast.LENGTH_SHORT).show();
            paicm();
          }else {
            //Toast.makeText(Mainactivity1.this, "对不起你没有此牌", Toast.LENGTH_SHORT).show();
            tvshow.setText("");
          }
//      int i;
//      for (i=0;i<cmsjs5index.length;i++) {
//          if (xz.equals(""+cmsjs5index[i])) {
//            cmsjs5index[i]="";
//          lvcmsjs.setAdapter(null);
//          ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cmsjs5index);//使用系统已经实现好的xml文件simple_list_item_1
//            lvcmsjs.setAdapter(adapter);
//            }else{
            //用户选牌的方式和限制
//            }
      }
    }
    //用户选牌的方式和限制
    private void paicm(){
          String xz=edtcm.getText().toString();
          if(xz.equals("")){
            AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create();
              aldg.setIcon(R.drawable.ic_launcher);
            aldg.setTitle("提示");
            aldg.setMessage("请您输入相应的数字");
            aldg.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                edtcm.setText("");//输入框不能为空
                edtcm.findFocus();//输入框获得焦点,没什么卵用无视!
              }
            });
            aldg.show();
          }
          else{
            aa=Integer.parseInt(xz);//类型转换把输入框的内容就是xz转换成int类型
            szcm = Integer.parseInt(xz);//szcm就是比牌时用的数字
            if(aa<14&&aa>0&&gamesz==false){//输入的内容限制条件,gamesz==false游戏规则选择false为5局即默认
              //判断输入内容是否在数组中此处不完善
            switch (aa){
            //以下皆为得到用户的牌
              case 1:ivcm.setImageResource(imgpath[0]);break;
              case 2:ivcm.setImageResource(imgpath[1]);break;
              case 3:ivcm.setImageResource(imgpath[2]);break;
              case 4:ivcm.setImageResource(imgpath[3]);break;
              case 5:ivcm.setImageResource(imgpath[4]);break;
              case 6:ivcm.setImageResource(imgpath[5]);break;
              case 7:ivcm.setImageResource(imgpath[6]);break;
              case 8:ivcm.setImageResource(imgpath[7]);break;
              case 9:ivcm.setImageResource(imgpath[8]);break;
              case 10:ivcm.setImageResource(imgpath[9]);break;
              case 11:ivcm.setImageResource(imgpath[10]);break;
              case 12:ivcm.setImageResource(imgpath[11]);break;
              case 13:ivcm.setImageResource(imgpath[12]);break;
              }
//            获取cpu的牌
            pai();
//            开始游戏
            game();
              }
            else if(aa<14&&aa>0&&gamesz==true){//输入的内容限制条件,gamesz==Ture游戏规则选择为七局制时的选择
            switch (aa){
            //以下皆为得到用户的牌
              case 1:ivcm.setImageResource(imgpath[0]);break;
              case 2:ivcm.setImageResource(imgpath[1]);break;
              case 3:ivcm.setImageResource(imgpath[2]);break;
              case 4:ivcm.setImageResource(imgpath[3]);break;
              case 5:ivcm.setImageResource(imgpath[4]);break;
              case 6:ivcm.setImageResource(imgpath[5]);break;
              case 7:ivcm.setImageResource(imgpath[6]);break;
              case 8:ivcm.setImageResource(imgpath[7]);break;
              case 9:ivcm.setImageResource(imgpath[8]);break;
              case 10:ivcm.setImageResource(imgpath[9]);break;
              case 11:ivcm.setImageResource(imgpath[10]);break;
              case 12:ivcm.setImageResource(imgpath[11]);break;
              case 13:ivcm.setImageResource(imgpath[12]);break;
              }
//            获取cpu的牌
            pai();
//            开始游戏
            game();
            }
            else{
                Toast.makeText(Mainactivity1.this, "请输入1~13的数字", Toast.LENGTH_LONG).show();
                edtcm.setText("");
                edtcm.findFocus();
                return;
              }
              }
            }
//    cpu得到牌的方法每次不重复
    private void pai(){
        szcpu=(int)(Math.random()*12)+1;
        if(szcpu!=cpusj){
        cpusj=szcpu;
        }else{
          cpusj=(int)(Math.random()*12)+1;
          szcpu=cpusj;
        }
        paire[cpusj-1]=cpusj;
        ivcpu.setImageResource(imgpath[szcpu-1]);
    }
    protected void Button1() {
//      页面转换调出排行榜页面
      setContentView(R.layout.star_main);  
          exam();//加载并查询数据的方法
          btnesc = (Button) findViewById(R.id.buttonesc);  
          btnesc.setOnClickListener(new Button.OnClickListener() {  
              public void onClick(View v) {  
                  setContentView(R.layout.activity_main); //调出游戏界面并实现方法
                  ivcpu=(ImageView) findViewById(R.id.ivcpu);
                  ivcm=(ImageView) findViewById(R.id.ivcm);
                  tvshow=(TextView)findViewById(R.id.tvshow);
                  edtcm=(EditText) findViewById(R.id.edtcm);
                  btnok=(Button)findViewById(R.id.buttonok);
                  lvcmsjs=(ListView) findViewById(R.id.lvcmsz);
                  star();//游戏初始化
              }  
          });  
    }
    private void exam() {
      Button btnDataToList=(Button)findViewById(R.id.buttoning);
        lvZhipai=(ListView)findViewById(R.id.lvZhipai);
        btnDataToList.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v) {
            SQLiteDatabase db=mydbhelper.getWritableDatabase();
            //Cursor c=db.query("book", null, "pages>?", null, null, null, "pages desc");
            Cursor c=db.query("exam", null, null, null,null,null ,"examcm desc"); //最后一个参数:页数降序! name:玩家;分数:score desc;
            zhipai=new ArrayList<Zhipai>();
            if(c!=null){
              while(c!=null && c.moveToNext()){
                Zhipai zp=new Zhipai(); //新建一个book对象;实体类,要实体类的每个属性;
                zp.setId(c.getInt(0));
                zp.setName(c.getString(1));
                zp.setExamcm(c.getInt(2));
                zhipai.add(zp); //每一个对象,都要加进books集合里面;
              }
              c.close();   //关闭游标,切记,不要忘记完毕cursor对象;
            }
            //加载
            String []examInfo=new String[zhipai.size()]; //数组长度,集合长度;
            ArrayAdapter<String>arrayAdapter=null; //适配器;
            int i=0;
            for(Zhipai z:zhipai){ //写了一个迭代器,从books集合里面逐个取对象book;
              //将图书相关信息组合成一个字符串,存储在字符串数组中的相应位置;
              examInfo[i]=z.getId()+"|\t\t\t"+z.getName()+" \t\t"+z.getExamcm();
              i++;
            }
            //使用字符串数组初始化ArrayAdapter对象;
            arrayAdapter=new ArrayAdapter<String>(Mainactivity1.this,android.R.layout.simple_list_item_1,examInfo);
            lvZhipai.setAdapter(arrayAdapter);
          }
        });
    }
    @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
          }
}


目录
相关文章
|
2月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
122 1
|
2月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
127 2
|
2月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
208 0
安卓项目:app注册/登录界面设计
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
55 6
|
2月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
52 2
|
2月前
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
38 1
|
1月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
63 0
|
2月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
28 2
|
2月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
缓存 安全 开发工具
Android 解决bug:Android studio 运行、编译项目时导致电脑死机
Android 解决bug:Android studio 运行、编译项目时导致电脑死机
935 0