1)效果图如下
2)创建GridView的布局xml(gridview_student.xml)具体代码如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/idTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/nameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<ImageView
android:id="@+id/photoImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
3)修改MainActivity.java代码如下
package com.example.test6;
import java.util.ArrayList;
import java.util.HashMap;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity {
private GridView gridView1=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView1=(GridView)findViewById(R.id.gridView1);
ArrayList<HashMap<String, Object>> students=getStudents();
SimpleAdapter adapter=new SimpleAdapter(
MainActivity.this,
students,
R.layout.gridview_student,
new String[]{"id","name","photo"},
new int[]{R.id.idTextView,R.id.nameTextView,R.id.photoImageView});
gridView1.setNumColumns(3);
gridView1.setAdapter(adapter);
gridView1.setOnItemClickListener(new GridView.OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,int position,long arg3){
HashMap<String, Object> selectedItem=(HashMap<String, Object>)parent.getItemAtPosition(position);
Toast.makeText(MainActivity.this, selectedItem.get("name").toString(), Toast.LENGTH_SHORT).show();
}
});
}
/*生成数据*/
private ArrayList<HashMap<String, Object>> getStudents(){
ArrayList<HashMap<String, Object>> items=new ArrayList<HashMap<String,Object>>();
for(int i=1;i<=30;i++){
HashMap<String, Object> item=new HashMap<String, Object>();
item.put("id", i);
item.put("name", "张三"+i);
item.put("photo", android.R.drawable.ic_dialog_email);
items.add(item);
}
return items;
}
@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;
}
}