• Android九宫格界面实现点击每个格点击跳转界面


    刚开始有个任务就是做一个九宫格界面,后来有个任务就是实现点击每个格并跳转界面实现每个格的功能。下面我就介绍一下我是如何实现该功能的

    首先写一下我的想法是:

    登录成功后显示一个九宫格界面,每个九宫格的每一个都是一个功能模块,当点击每个模块时,就会跳转到相应的界面并实现该模块所具备的功能。

    下面是以"综合实践管理系统"这个格来实现的,当我们点击该按钮时,他就会跳转到"学生综合实践模块积分申请表"这个界面然后我们通过下拉菜单选择自己想要申请的项目。然后点击"下一步"我们就跳转到补充信息这个界面了,实现上传照片还有补充信息这个功能界面。

    第二步:跳转到下面这个界面

    第三步点击下一步跳转到完善信息这个界面

    点击加号上传你要加分的证明图片,这个照片可以调用相机照也可以是从相册中获取

    点击从相册中获取会

    下面就是我用到的控件及控件的用法。

      1 package com.itcast.test03;

    3 import java.util.ArrayList; 4 import java.util.HashMap; 6 import android.os.Bundle; 7 import android.app.Activity; 8 import android.content.Intent; 9 import android.view.Menu; 10 import android.view.View; 11 import android.view.ViewGroup; 12 import android.widget.AdapterView; 13 import android.widget.AdapterView.OnItemClickListener; 14 import android.widget.BaseAdapter; 15 import android.widget.GridView; 16 import android.widget.ImageView; 17 import android.widget.SimpleAdapter; 18 import android.widget.TextView; 19 import android.widget.Toast; 20 21 public class StudentMainActivity extends Activity { 22 private GridView gridview; 23 24 @Override 25 protected void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.activity_student_main); 28 gridview = (GridView)findViewById(R.id.gridView1); 29 ArrayList<HashMap<String,Object>> lstImageItem = new ArrayList<HashMap<String,Object>>(); 30 for(int i = 1;i<20;i++){ 31 HashMap<String,Object> map = new HashMap<String, Object>(); 32 if(i==1){ 33 map.put("ItemImage", R.drawable.ic_launcher02); 34 map.put("ItemText", "实践教学管理系统"); 35 36 }else if(i==2){ 37 map.put("ItemImage", R.drawable.ic_launcher06); 38 map.put("ItemText", "毕业设计管理系统"); 39 40 }else if(i==3){ 41 map.put("ItemImage", R.drawable.ic_launcher02); 42 map.put("ItemText", "开放实验管理系统"); 43 44 }else if(i==4){ 45 map.put("ItemImage", R.drawable.ic_launcher03); 46 map.put("ItemText", "实习实训管理系统"); 47 48 }else if(i==5){ 49 map.put("ItemImage", R.drawable.ic_launcher05); 50 map.put("ItemText", "班级事务管理系统"); 51 52 }else if(i==6){ 53 map.put("ItemImage", R.drawable.ic_launcher06); 54 map.put("ItemText", "综合实践管理系统"); 55 56 }else if(i==7){ 57 map.put("ItemImage", R.drawable.ic_launcher04); 58 map.put("ItemText", "其他事物2管理系统"); 59 60 }else if(i==8){ 61 map.put("ItemImage", R.drawable.ic_launcher08); 62 map.put("ItemText", "其他事物3管理系统"); 63 64 }else if(i==9){ 65 map.put("ItemImage", R.drawable.ic_launcher01); 66 map.put("ItemText", "其他事物4管理系统"); 67 68 }else if(i==10){ 69 map.put("ItemImage", R.drawable.ic_launcher02); 70 map.put("ItemText", "开放实验管理系统"); 71 72 }else if(i==11){ 73 map.put("ItemImage", R.drawable.ic_launcher03); 74 map.put("ItemText", "实习实训管理系统"); 75 76 }else if(i==12){ 77 map.put("ItemImage", R.drawable.ic_launcher05); 78 map.put("ItemText", "班级事务管理系统"); 79 80 }else if(i==13){ 81 map.put("ItemImage", R.drawable.ic_launcher06); 82 map.put("ItemText", "综合实践管理系统"); 83 84 }else if(i==14){ 85 map.put("ItemImage", R.drawable.ic_launcher04); 86 map.put("ItemText", "其他事物2管理系统"); 87 88 }else if(i==15){ 89 map.put("ItemImage", R.drawable.ic_launcher08); 90 map.put("ItemText", "其他事物3管理系统"); 91 92 }else if(i==16){ 93 map.put("ItemImage", R.drawable.ic_launcher01); 94 map.put("ItemText", "其他事物4管理系统"); 95 96 } 97 lstImageItem.add(map); 98 } 99 SimpleAdapter saImageItems = new SimpleAdapter(this, 100 lstImageItem,R.layout.next_activity_student_main, 101 new String[]{"ItemImage","ItemText"}, 102 new int[] {R.id.ItemImage,R.id.ItemText}); 103 gridview.setAdapter(saImageItems); 104 gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 105 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 106 long arg3) { 107 int index = arg2 + 1;// id是从0开始的,所以需要+1 108 if (index == 1) { 109 110 Intent intent = new Intent(); 111 intent.setClass(StudentMainActivity.this, 112 StudentNextMainActivity.class); 113 startActivity(intent); 114 } 115 if (index == 2) { 116 Intent intent = new Intent(); 117 intent.setClass(StudentMainActivity.this, 118 StudentNextMainActivity.class); 119 startActivity(intent); 120 121 } 122 123 } 124 }); 125 126 127 128 129 130 } 131 }
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2          android:layout_width="match_parent"
     3          android:layout_height="wrap_content"              
     4          android:orientation="vertical" >
     5 
     6      <RelativeLayout 
     7              android:id="@+id/rl_username"
     8              android:layout_width="match_parent"
     9              android:layout_height="wrap_content"            
    10              android:background="#000000">
    11              <TextView 
    12                  android:id="@+id/tv_name"
    13                  android:layout_width="match_parent"
    14                  android:layout_height="wrap_content"
    15                  android:layout_centerVertical="true"
    16                  android:layout_margin="35dp"
    17                  android:textSize="20sp"
    18                  android:textColor="#FFFFFF"
    19                  android:text="欢迎登录软件学院管理系统"/>     
    20          </RelativeLayout>
    21 
    22     <LinearLayout
    23         android:layout_width="match_parent"
    24         android:layout_height="wrap_content"        
    25         android:orientation="vertical" >                 
    26     <GridView
    27         android:id="@+id/gridView1"
    28         android:layout_width="match_parent"
    29         android:layout_height="wrap_content"
    30         android:numColumns="3" >
    31     </GridView>
    32 </LinearLayout>
    33 </LinearLayout>
     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:layout_width="fill_parent"
     3     android:layout_height="wrap_content" >
     4 
     5     <ImageView
     6         android:id="@+id/ItemImage"
     7         android:layout_width="50dp"
     8         android:layout_height="50dp"
     9        android:layout_centerHorizontal="true"/>
    10 
    11     <TextView
    12         android:id="@+id/ItemText"
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15           android:layout_centerHorizontal="true"
    16         android:layout_below="@+id/ItemImage"
    17         android:layout_marginTop="24dp"
    18         android:textColor="#000000"
    19         android:textSize="12sp"  />
    20    
    21 </RelativeLayout>

     以上是实现这个界面的代码

      1 package com.itcast.test03;
      2 
      3 import android.os.Bundle;
      4 import android.app.Activity;
      5 import android.view.Menu;
      6 import java.io.File;
      7 import java.io.FileOutputStream;
      8 import android.os.Environment;
      9 import android.content.Intent;
     10 import android.graphics.Bitmap;
     11 import android.view.View;
     12 import android.widget.AdapterView;
     13 import android.widget.ArrayAdapter;
     14 import android.widget.Spinner;
     15 public class StudentNextMainActivity extends Activity
     16 {
     17     private Spinner projectsSpinner = null;  
     18     private Spinner kindsSpinner = null;    
     19     private Spinner examinesSpinner = null;   
     20     ArrayAdapter<String>  projectsAdapter = null;  
     21     ArrayAdapter<String> kindsAdapter = null;    
     22     ArrayAdapter<String> examinesAdapter = null;    
     23     static int provincePosition = 3;   
     24     private String[] projects = new String[] {"科研训练","素质拓展","社会实践"};
     25     private String[][] kinds = new String[][] 
     26             {
     27                     { "项目类", "成果类", "学术活动"},
     28                     { "专业素质", "综合素质"},
     29                     { "无"}
     30             };
     31 
     32 
     33     private String[][][] examines = new String[][][] 
     34             {
     35                     { //科研训练
     36                         {"主持或参加科研项目","校大学生创新基金重点项目","校大学生创新基金一般项目"},
     37                         {"获奖","著作","专利","论文"},
     38                         {"学术交流","学术讲座","课外读书"}
     39                     },
     40                     {    //素质拓展
     41                         {"学科竞赛(含挑战杯)","证书"},
     42                         {"开放实验","参加文体活动","组织活动"}
     43                     },
     44                     {    //社会实践
     45                         {"社会实践活动","社团活动","公益劳动","自主创业"}
     46                     }
     47             };
     48 
     49     
     50     @Override
     51     protected void onCreate(Bundle savedInstanceState)
     52     {
     53         super.onCreate(savedInstanceState);
     54         setContentView(R.layout.activity_student_next_main);
     55         setSpinner();
     56     }
     57     public void pitcure(View view){
     58         screenshot();
     59     }
     60     private void screenshot()
     61     {
     62         // 获取屏幕
     63         View dView = getWindow().getDecorView();  
     64         dView.setDrawingCacheEnabled(true);   
     65         dView.buildDrawingCache();   
     66         Bitmap bmp = dView.getDrawingCache();
     67         if (bmp != null)
     68         {
     69             try {
     70                 // 获取内置SD卡路径
     71                 String sdCardPath = Environment.getExternalStorageDirectory().getPath();
     72                 // 图片文件路径
     73                 String filePath = sdCardPath + File.separator + "screenshot.png";
     74                  
     75                 File file = new File(filePath);
     76                 FileOutputStream os = new FileOutputStream(file);
     77                 bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
     78                 os.flush();
     79                 os.close();
     80             } catch (Exception e) {
     81             }
     82         }
     83     }
     84     public void next(View view){
     85         Intent intent = new Intent(this,WriteMainActivity.class);
     86         startActivity(intent);
     87     }
     88     
     89     /*
     90      * 设置下拉框
     91      */
     92     private void setSpinner()
     93     {        
     94         projectsSpinner = (Spinner)findViewById(R.id.spin_projects);
     95         kindsSpinner = (Spinner)findViewById(R.id.spin_kinds);
     96         examinesSpinner = (Spinner)findViewById(R.id.spin_examines);
     97 
     98         //绑定适配器和值
     99         projectsAdapter = new ArrayAdapter<String>(StudentNextMainActivity.this,
    100                 android.R.layout.simple_spinner_item, projects);
    101         projectsSpinner.setAdapter( projectsAdapter);
    102         projectsSpinner.setSelection(2,true);  //设置默认选中项,此处为默认选中第3个值
    103 
    104         kindsAdapter = new ArrayAdapter<String>(StudentNextMainActivity.this, 
    105                 android.R.layout.simple_spinner_item, kinds[2]);
    106         kindsSpinner.setAdapter(kindsAdapter);
    107         kindsSpinner.setSelection(0,true);  //默认选中第0个
    108         examinesAdapter = new ArrayAdapter<String>(StudentNextMainActivity.this,
    109                 android.R.layout.simple_spinner_item, examines[2][0]);
    110         examinesSpinner.setAdapter(examinesAdapter);
    111         examinesSpinner.setSelection(0, true);             
    112         projectsSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    113         {
    114             // 表示选项被改变的时候触发此方法,主要实现办法:动态改变地级适配器的绑定值
    115             @Override
    116             public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3)
    117             {
    118                 
    119                 kindsAdapter = new ArrayAdapter<String>(
    120                 StudentNextMainActivity.this, android.R.layout.simple_spinner_item,kinds[position]);
    121                 kindsSpinner.setAdapter(kindsAdapter);
    122                 provincePosition = position;    //记录当前省级序号,留给下面修改县级适配器时用
    123             }
    124             @Override
    125             public void onNothingSelected(AdapterView<?> arg0)
    126             {
    127 
    128             }
    129 
    130         });
    131 
    132         
    133         //种类下拉监听
    134         kindsSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    135         {
    136             @Override
    137             public void onItemSelected(AdapterView<?> arg0, View arg1,
    138                     int position, long arg3)
    139             {
    140                 examinesAdapter = new ArrayAdapter<String>(StudentNextMainActivity.this,
    141                         android.R.layout.simple_spinner_item, examines[provincePosition][position]);
    142                 examinesSpinner.setAdapter(examinesAdapter);
    143             }
    144             @Override
    145             public void onNothingSelected(AdapterView<?> arg0)
    146             {
    147 
    148             }
    149         });
    150     }
    151 }
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:layout_width="fill_parent"
     3     android:layout_height="fill_parent"
     4     android:orientation="vertical"     >
     5 <RelativeLayout
     6     android:layout_width="fill_parent"
     7     android:layout_height="50dp"
     8     android:background="#000000">
     9     <TextView 
    10         android:layout_width="match_parent"
    11         android:layout_height="wrap_content"
    12         android:textSize="24sp"
    13         android:layout_centerInParent="true"
    14         android:layout_centerHorizontal="true"
    15         android:layout_centerVertical="true"
    16         android:textColor="#FFFFFF"
    17         android:text="学生综合实践模块积分申请表"/>
    18 </RelativeLayout>
    19 <View 
    20     android:layout_width="match_parent"
    21     android:layout_height="8dp"/>
    22 <LinearLayout 
    23     android:layout_width="match_parent"
    24     android:layout_height="wrap_content"
    25    android:padding="8dp"
    26     android:orientation="vertical">
    27     <Spinner
    28         android:id="@+id/spin_projects"
    29         android:layout_width="150dp"
    30         android:layout_height="wrap_content" />
    31     <Spinner
    32         android:id="@+id/spin_kinds"
    33         android:layout_width="200dp"
    34         android:layout_height="wrap_content" />
    35     <Spinner
    36         android:id="@+id/spin_examines"
    37         android:layout_width="300dp"
    38         android:layout_height="wrap_content" />
    39 </LinearLayout>
    40 <RelativeLayout 
    41    android:layout_width="match_parent"
    42     android:layout_height="wrap_content" >
    43 
    44     <Button
    45         android:layout_width="wrap_content"
    46         android:layout_height="wrap_content"
    47         android:layout_alignParentRight="true"
    48         android:layout_alignParentTop="true"
    49         android:onClick="pitcure"
    50         android:background="#FFFFFF"
    51         android:textColor="#000000"
    52         android:text="截图" />
    53 <Button
    54         android:layout_width="wrap_content"
    55         android:layout_height="wrap_content"        
    56         android:onClick="next"
    57         android:background="#FFFFFF"
    58         android:textColor="#000000"
    59         android:text="下一步" />
    60     
    61 </RelativeLayout>
    62 
    63 </LinearLayout>

    以上代码是实现这个界面的

     1 package com.itcast.test03;
     2 import android.os.Bundle;
     3 import android.app.Activity;
     4 import android.view.Menu;
     5 
     6 public class WriteMainActivity extends Activity {
     7 
     8     @Override
     9     protected void onCreate(Bundle savedInstanceState) {
    10         super.onCreate(savedInstanceState);
    11         setContentView(R.layout.activity_write_main);
    12     }
    13 
    14     @Override
    15     public boolean onCreateOptionsMenu(Menu menu) {
    16         // Inflate the menu; this adds items to the action bar if it is present.
    17         getMenuInflater().inflate(R.menu.write_main, menu);
    18         return true;
    19     }
    20 
    21 }
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical"
     6     android:padding="8dp" >
     7     <RelativeLayout
     8        android:layout_width="match_parent"
     9          android:layout_height="50dp"
    10          android:background="#000000"> 
    11          <Button
    12         android:id="@+id/upload"
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:layout_alignParentRight="true"
    16         android:layout_centerHorizontal="true"
    17         android:layout_centerVertical="true"
    18         android:textColor="#FFFFFF"
    19         android:background="#000000"
    20         android:textSize="18sp"
    21         android:text="发送" />
    22     </RelativeLayout>
    23   
    24 <LinearLayout
    25     android:layout_width="match_parent"
    26     android:layout_height="match_parent"
    27     android:background="#ffffff"
    28     android:orientation="vertical" >
    29    <EditText
    30         android:layout_width="fill_parent"
    31         android:layout_height="100dp"
    32         android:layout_margin="8dp"
    33         android:gravity="left|top"
    34         android:hint="填写你要申请的分数及其他信息......"       
    35         android:background="@null" >
    36     </EditText>
    37     <ImageView 
    38        android:layout_width="100dp"
    39         android:layout_height="100dp"
    40         android:src="@drawable/icon_addpic_unfocused"  />
    41 
    42     <GridView 
    43         android:id="@+id/noScrollgridview"
    44         android:layout_width="290dp"
    45         android:layout_height="350dp"
    46         android:layout_marginLeft="5dp"
    47         android:horizontalSpacing="3dp"        
    48         android:numColumns="4"
    49         android:scrollbars="none"
    50         android:verticalSpacing="5dp" >
    51     </GridView>
    52 
    53 </LinearLayout>
    54 </LinearLayout>

    以上代码是实现这个界面的

  • 相关阅读:
    NGUI UIPanel绘制原理学习
    常用转义符
    windows常用快捷键
    用泛型方法Java从实体中提取属性值,以及在泛型方法中的使用
    java浮点型数据保留两位小数
    springboot中静态属性/静态方法从YAML(yml)读取配置属性
    Field in required a single bean, but 2 were found:
    Centos7 安装 Amazon Corretto 8
    Strange Java syntax (for me at least)--怪异的Java语法
    Returning array from function in C
  • 原文地址:https://www.cnblogs.com/kangyaping/p/5418425.html
Copyright © 2020-2023  润新知