一、实验目的

  1. 掌握在XML布局文件中添加下拉列表、列表视图和网格视图的语法格式及其常用属性;
  2. 掌握获取下拉列表和列表视图选中项值的方法。
  3. 理解ListView显示的基本原理;
  4. 掌握开发ListView的基本要素;
  5. 掌握ListView+ArrayAdapter应用实现的基本步骤。
  6. 掌握ListView/GridView+SimpleAdapter的应用。

二、实验内容

1.Spinner、ListView控件与Adapter适配器(一)

创建一个Android项目,项目名称为“shiyan0501_班级_×××(学生姓名)”,要求:

  • 界面构成:
    ①5个文本框用于显示提示信息“姓名:”、“年龄”、“专业”、“学历”、“爱好”;
    ②2个编辑框分别用于接收学生的姓名和年龄;
    ③3个单选按钮用于专业选择(计算机科学与技术、软件工程、网络工程);
    ④1个Spinner用于学历选择,使用数组资源获取列表项(高中、本科、硕士研究生、博士研究生、其他);
    ⑤n个复选框用于爱好选择(n>=3);
    ⑥3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
    ⑦1个ListView,用于显示录入的所有学生信息。
  • 程序功能:
    ①单击“录入”按钮,将用户输入和选择的各项信息写入数组;
    ②单击“重置”按钮,清空用户输入的信息;
    ③单击“显示”按钮,将所有录入的学生信息在ListView中显示。
【文字描述】

首先设置布局为TableLayout.
添加5个文本框用于显示提示信息;
再添加2个编辑框分别用于接收学生的姓名和年龄;
3个单选按钮用于专业选择(物联、计科、软件),并将其放入一个RadioGroup中;1个Spinner用于学历选择,使用数组资源获取列表项(高中、本科、硕士研究生、博士研究生、其他);
4个复选框用于爱好选择,并将其放入一个TableRow中;
3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
1个ListView,用于显示录入的所有学生信息。
添加一个array.xml文件,里面设置<string-array name="zhuanye"><item>。
在JAVA代码中,获取到各个控件,通过内部类设置事件监听。进行相应的操作。

在这里插入图片描述

【布局activity_main.xml文件】

<TableLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="姓名" />

    <EditText android:id="@+id/ED_name" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="年龄" />

    <EditText android:id="@+id/ED_age" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="专业" />

    <RadioGroup
        android:id="@+id/RadioGroup1"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/radio_IOT"
            android:text="物联" />

        <RadioButton
            android:id="@+id/radio_jike"
            android:text="计科" />

        <RadioButton
            android:id="@+id/radio_ruanjian"
            android:text="软件" />
    </RadioGroup>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="学历" />

    <Spinner
        android:id="@+id/spinner"
        android:entries="@array/zhuanye" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="爱好" />

    <TableRow android:id="@+id/CB_TR" >

        <CheckBox android:text="学习" />

        <CheckBox android:text="跑步" />

        <CheckBox android:text="看书" />

        <CheckBox android:text="音乐" />
    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/submit_BT"
            android:layout_weight="1"
            android:text="录入" />

        <Button
            android:id="@+id/show_BT"
            android:layout_weight="1"
            android:text="显示" />

        <Button
            android:id="@+id/reset_BT"
            android:layout_weight="1"
            android:text="重置" />
    </TableRow>

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</TableLayout>
【Spinner组件的内容array.xml文件】
(此文件放在res——values文件夹下)

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

    <string-array name="zhuanye">
        <item></item>
        <item>高中</item>
        <item>本科</item>
        <item>硕士研究生</item>
        <item>博士研究生</item>
        <item>其他</item>
    </string-array>
    <string-array name="all_mess"></string-array>

</resources>
【布局adapter.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/myadapter"
    android:textSize="15sp">
    
</TextView>
MainActivity.java文件】

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.content.ClipData.Item;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TableRow;
import android.widget.TextView;

public class MainActivity extends Activity {

	TextView show;
	EditText name_ET,age_ET;
	RadioGroup dep ;
	CheckBox hobby_CB;
	TableRow CB_TR;
	Spinner spinner;
	ListView listview;
	String name,age;
	String department="";
	String hobby="";
	String xueli="";
	Button sb_BT,rs_BT,show_BT;
	View item;
	ArrayList<String> allmess;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		name_ET=(EditText) findViewById(R.id.ED_name);
		age_ET=(EditText) findViewById(R.id.ED_age);
		dep = (RadioGroup) findViewById(R.id.RadioGroup1);
		spinner=(Spinner) findViewById(R.id.spinner);		
		listview=(ListView) findViewById(R.id.listview);
		allmess = new ArrayList<String>();
		CB_TR=(TableRow) findViewById(R.id.CB_TR);
		sb_BT=(Button) findViewById(R.id.submit_BT);
		sb_BT.setOnClickListener(new ClickListener());
		rs_BT=(Button) findViewById(R.id.reset_BT);
		rs_BT.setOnClickListener(new ClickListener());
		show_BT=(Button) findViewById(R.id.show_BT);
		show_BT.setOnClickListener(new ClickListener());
		dep.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
				RadioButton r;
				if(checkedId!=-1){
					r = (RadioButton) findViewById(checkedId);
					department=r.getText().toString();
				}else{
					department="";
				}
			}
		});  
	}
	class ClickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			switch(v.getId()){
			case R.id.submit_BT:
				name=name_ET.getText().toString();
				age=age_ET.getText().toString();
				hobby="";
				for(int i=0;i<CB_TR.getChildCount();i++){
					CheckBox c = (CheckBox) CB_TR.getChildAt(i);
					if(c.isChecked()){
						hobby+=c.getText().toString()+" ";
					}
				}
				xueli=spinner.getSelectedItem().toString();
				allmess.add(name+" "+age+" "+department+" "+xueli+" "+hobby);
				break;
			case R.id.reset_BT:
				name_ET.setText("");
				age_ET.setText("");
				dep.clearCheck();
				spinner.setSelection(0);
				for(int i=0;i<CB_TR.getChildCount();i++){
					CheckBox c = (CheckBox) CB_TR.getChildAt(i);
					c.setChecked(false);
				}
				break;
			case R.id.show_BT:
				ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
						//	android.R.layout.simple_list_item_1,
						R.layout.adapter,
						allmess);
				listview.setAdapter(adapter);
				break;
			}
		}
	}
}

2.Spinner、ListView控件与Adapter适配器(二)

创建一个Android项目,项目名称为“shiyan0502_专业_×××(学生姓名)”,要求:

  • 界面构成:
    ①5个文本框用于显示提示信息“图书名称:”、“图书价格”、“图书版次”“图书类别”、“出版社”;
    ②2个编辑框分别用于接收图书的名称和价格;
    ③4个单选按钮用于版次选择(1版、2版、3版、3版以上);
    ④n个复选框用于类别选择(教育、计算机、小说、科技、励志、文学等);
    ⑤1个Spinner用于出版社选择,使用数组资源获取列表项(人民邮电出版社、科学出版社、高等教育出版社、清华大学出版社,其他等);
    ⑥3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
    ⑦1个ListView,用于显示录入的所有图书信息。
  • 程序功能:
    ①单击“录入”按钮,将用户输入和选择的各项信息写入数组;
    ②单击“重置”按钮,清空用户输入的信息;
    ③单击“显示”按钮,将所有录入的图书信息在ListView中显示。
【文字描述】

首先使用TableLayout布局:
添加5个文本框用于显示提示信息
2个编辑框分别用于接收图书的名称和价格;
4个单选按钮用于版次选择,并将其放入一个RadioGroup中;
6个复选框用于类别选择,3个为一组放入TableRow中; 
1个Spinner用于出版社选择,使用数组资源获取列表项,
并在res_value文件夹下创建一个array.xml的文件,里面存入数组资源列表。
3个普通按钮,文本分别显示为“录入”、“重置”、“显示”;
1个ListView,用于显示录入的所有图书信息。
在Java代码中获取到所有的编辑框、RadioGroup、
含有CheckBox的TableRow、三个按钮、spinner和listview,
并对三个按钮设置事件监听。
【布局activity_main.xml文件】

<TableLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="图书名称" />

    <EditText android:id="@+id/ED_name" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="图书价格" />

    <EditText android:id="@+id/ED_prize" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="图书版次" />

    <RadioGroup
        android:id="@+id/RadioGroup1"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/radio_1"
            android:text="1版" />

        <RadioButton
            android:id="@+id/radio_2"
            android:text="2版" />

        <RadioButton
            android:id="@+id/radio_3"
            android:text="3版" />

        <RadioButton
            android:id="@+id/radio_3p"
            android:text="3版以上" />
    </RadioGroup>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="图书类别" />

    <TableRow android:id="@+id/CB_TR" >

        <CheckBox android:text="教育" />

        <CheckBox android:text="计算机" />

        <CheckBox android:text="小说" />
    </TableRow>

    <TableRow android:id="@+id/CB_TR2" >

        <CheckBox android:text="励志" />

        <CheckBox android:text="科技" />

        <CheckBox android:text="文学" />
    </TableRow>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="出版社" />

    <Spinner
        android:id="@+id/spinner"
        android:entries="@array/publisher" />

    <TableRow>

        <Button
            android:id="@+id/submit_BT"
            android:layout_weight="1"
            android:onClick="register"
            android:text="录入" />

        <Button
            android:id="@+id/show_BT"
            android:layout_weight="1"
            android:onClick="show"
            android:text="显示" />

        <Button
            android:id="@+id/reset_BT"
            android:layout_weight="1"
            android:onClick="reset"
            android:text="重置" />
    </TableRow>

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</TableLayout>
【布局adapter.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myadapter"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="15sp" >

</TextView>
【Spinner组件的内容array.xml文件】
(此文件放在res——values文件夹下)

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

    <string-array name="publisher">
        <item>人民邮电出版社</item>
        <item>科学出版社</item>
        <item>高等教育出版社</item>
        <item>清华大学出版社</item>
        <item>其他</item>
    </string-array>

</resources>
MainActivity.java文件】

import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TableRow;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends Activity {

	EditText et_bookname,et_prize;
	String str_bookname,str_prize;
	RadioGroup rg_version;
	String str_version;
	TableRow row1,row2;
	String str_category;
	Spinner sp;
	String str_publisher;
	Button bt_submit,bt_reset,bt_show;
	ListView lv;
	ArrayList<String> List_allmess;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_bookname=(EditText) findViewById(R.id.ED_name);
		et_prize=(EditText) findViewById(R.id.ED_prize);
		row1=(TableRow) findViewById(R.id.CB_TR);
		row2=(TableRow) findViewById(R.id.CB_TR2);
		sp=(Spinner) findViewById(R.id.spinner);
		bt_submit=(Button) findViewById(R.id.submit_BT);
		bt_reset=(Button) findViewById(R.id.reset_BT);
		bt_show=(Button) findViewById(R.id.show_BT);
		lv=(ListView) findViewById(R.id.listview);
		List_allmess=new ArrayList<String>();
		rg_version=(RadioGroup) findViewById(R.id.RadioGroup1);
		rg_version.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
				RadioButton r;
				if(checkedId!=-1){
					r = (RadioButton) findViewById(checkedId);
					str_version=r.getText().toString();
				}else{
					str_version="";
				}
			}
		});  

	}

	public void register(View view){
		str_category="";
		for(int i=0;i<row1.getChildCount();i++){
			CheckBox c = (CheckBox) row1.getChildAt(i);
			if(c.isChecked()){
				str_category+=c.getText().toString()+" ";
			}
		}
		for(int i=0;i<row2.getChildCount();i++){
			CheckBox c = (CheckBox) row2.getChildAt(i);
			if(c.isChecked()){
				str_category+=c.getText().toString()+" ";
			}
		}
		str_bookname=et_bookname.getText().toString();
		str_prize=et_prize.getText().toString();
		str_publisher=sp.getSelectedItem().toString();
		List_allmess.add(str_bookname+" "+str_prize+" "+str_version+" "+str_category+" "+str_publisher);
	}
	public void reset(View view){
		et_bookname.setText("");
		et_prize.setText("");
		sp.setSelection(0);
		rg_version.clearCheck();
		for(int i=0;i<row1.getChildCount();i++){
			CheckBox c = (CheckBox) row1.getChildAt(i);
			c.setChecked(false);
		}
		for(int i=0;i<row2.getChildCount();i++){
			CheckBox c = (CheckBox) row2.getChildAt(i);
			c.setChecked(false);
		}

	}
	public void show(View view){
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
				//	android.R.layout.simple_list_item_1,
				R.layout.adapter,
				List_allmess);
		lv.setAdapter(adapter);
	}
	@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;
	}
}

3.类似应用市场的界面和功能

创建一个Android项目,使用ListView控件将应用程序图标及名称进行显示,实现类似应用市场的功能,具体显示效果参照课件【例4】,图标和应用程序名称可自行设定。
在这里插入图片描述

【提示】

首先需要在res文件夹下的drawable文件夹里存放几张图片
直接在eclipse中粘贴到drawable文件夹下即可(其他编译器同理)
图片不宜过大,几百KB为宜
根据分辨率不同drawable有好几个文件夹
由于我们不考虑不同分辨率场景下的情况
将图片放在任何一个drawable文件夹下即可
【文字描述】

在布局文件中添加一个listview,设置id大小等属性。
创建一个List的布局文件,设置布局格式。
在Java代码中,通过List<Map<String,Object>>存入图片,设置SimpleAdapter
【布局activity_main.xml文件】

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</RelativeLayout>
【布局list_item.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="150px"
        android:layout_height="150px"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:text=""
        android:textSize="20sp" />

</LinearLayout>
【strings.xml文件】
(此文件在res——values文件夹下)

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

    <string name="app_name">shiyan0503_专业班级_xxx</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>
MainActivity.java文件】

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {

	ListView lv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		String names[]={"石家庄站","河北工业大学","自然公园","C1教学楼","麻辣烫"};
		int image[]={R.drawable.img_1,R.drawable.img_2,R.drawable.img_3,R.drawable.img_4,R.drawable.img_5,};
		lv=(ListView) findViewById(R.id.listview);
		List<Map<String,Object>> listitem=new ArrayList<Map<String,Object>>();
		for(int i=0;i<names.length;i++){
			Map<String,Object> item = new HashMap<String,Object>();
			item.put("picname",names[i]);
			item.put("picid",image[i]);
			listitem.add(item);
		}
		SimpleAdapter sad = new SimpleAdapter(MainActivity.this,
				listitem, 
				R.layout.list_item,
				new String[]{"picname","picid"},
				new int[]{R.id.tv_name,R.id.iv_image});
		lv.setAdapter(sad);

		lv.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this, arg0.getItemAtPosition(arg2).toString(), 0).show();
			}
		});
	}

	@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;
	}
}

4.GridView控件

在这里插入图片描述

【提示】

首先需要在res文件夹下的drawable文件夹里存放几张图片
直接在eclipse中粘贴到drawable文件夹下即可(其他编译器同理)
图片不宜过大,几百KB为宜
根据分辨率不同drawable有好几个文件夹
由于我们不考虑不同分辨率场景下的情况
将图片放在任何一个drawable文件夹下即可
【文字描述】

首先在activity_main.xml文件中添加一个GridView,并设置id、列数、大小属性。
之后在layout文件夹中添加一个gridview_item.xml文件,
在里面添加ImageView和TextView并设置id、列数、大小属性。
在MainActivity文件中首先获取到Gridview,定义字符串数组和整型数组,
分别保存字符串和图片id。
使用List<Map<String,Object>>通过for循环将图片添加入一个List中,
最后设置适配器。
【布局activity_main.xml文件】

<RelativeLayout <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <GridView
        android:id="@+id/GV"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3" >
    </GridView>

</RelativeLayout>
【布局gridview_item.xml适配器文件】
(此文件与布局activity_main.xml文件放在一起)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="100px"
        android:layout_height="100px"
        android:layout_gravity="center" />

    <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

</LinearLayout>
【strings.xml文件】
(此文件在res——values文件夹下)

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

    <string name="app_name">shiyan0504_专业班级_xxx</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>
MainActivity.java文件】

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.GridView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

	GridView lv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		String names[]={"石家庄站","河北工业大学","自然公园","C1教学楼","麻辣烫"};
		int image[]={R.drawable.img_1,R.drawable.img_2,R.drawable.img_3,
				R.drawable.img_4,R.drawable.img_5};
		lv=(GridView) findViewById(R.id.GV);
		List<Map<String,Object>> listitem=new ArrayList<Map<String,Object>>();
		for(int i=0;i<names.length;i++){
			Map<String,Object> item = new HashMap<String,Object>();
			item.put("picname",names[i]);
			item.put("picid",image[i]);
			listitem.add(item);
		}
		SimpleAdapter sad = new SimpleAdapter(MainActivity.this,
				listitem, 
				R.layout.gridview_item,
				new String[]{"picname","picid"},
				new int[]{R.id.text_view,R.id.image_view});
		lv.setAdapter(sad);
	}

	@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;
	}
}
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐