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

简介: 安卓项目之纸牌游戏之四 游戏规则类
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;
          }
}


目录
相关文章
|
1月前
|
开发工具 Android开发
ArkUI-X添加到现有Android项目中
本教程介绍如何使用ArkUI-X SDK开发Android AAR,实现ArkTS声明式开发在Android平台的显示。主要内容包括:1) 跨平台Library工程开发;2) AAR在Android应用中的集成方式。通过ACE Tools或DevEco Studio完成AAR构建,初始化ArkUI-X,并通过Activity或Fragment加载页面。具体步骤涵盖工程创建、构建AAR包、配置Manifest及使用Intent或Fragment打开页面等。
130 57
|
5月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
307 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
5月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
414 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
5月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
113 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
6月前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
286 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
6月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
132 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
8月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
199 6
|
Android开发
android混淆规则配置记录
title: android混淆记录 date: 2018-10-22 18:45:08 tags: 混淆 最近为了增加自己app的反编译难道,也为了减少压缩包体积,所以配置了混淆规则,这里坑还是蛮多的。
1160 0
|
1月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
69 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
4月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
721 76