SimpleAdapter在GridView中运用实例

话不多说,SimpleAdapter在我之前的博客中有详细介绍这里随便提一下,主要看下GridView在具体实例中的运用。










下面通过一个Samples_6_10 Android项目来实现一个具体的功能:使用GridView显示数据 选中项并给出相应提示。

(1)创建一个Android Application Project Samples_6_10

(2)在values\string.xml中修改添加如下代码

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Samples_6_10</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
<string name="a1">来电伪装</string>
<string name="a2">短信伪装</string>
<string name="a3">帮助</string>
<string name="a4">关于</string>
</resources>

(3)在res\drawable-mdpi添加如图所示的图片








(4)修改布局文件res\layout\activity_main.xml添加GridView布局代码

<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"
    tools:context=".MainActivity" >


    <GridView 
    android:id="@+id/mygridview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:numColumns="2">
    </GridView>


</RelativeLayout>

(5)在layout文件下res\layout\grid_item.xml添加GridView数据框架即每行框架

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center">
<ImageView 
android:id="@+id/image_item"
android:layout_width="120dip"
android:layout_height="120dip"
android:layout_centerInParent="true">
</ImageView>
<TextView
android:id="@+id/text_item"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/image_item"
android:layout_centerHorizontal="true">
</TextView>
</RelativeLayout>

(6)此时书写主Activity代码MainActivity.java类实现具体功能:

package com.example.samples_6_10;


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


public class MainActivity extends Activity {
private GridView gridview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //使用List生成数据,此处可以自己填写数据也可以用别的方法获取数据
        List<Map<String,Object>> items=new ArrayList<Map<String,Object>>();
        for(int i=0;i<4;i++)
        {
        String xString="";
        Map<String,Object> item=new HashMap<String,Object>();
        item.put("imageItem", R.drawable.a+i);
        xString=this.getString(R.string.a1+i);
        item.put("textItem",xString);
        items.add(item);
        }
        SimpleAdapter adapter=new SimpleAdapter(
        this,
        items,
        R.layout.grid_item,
        new String[]{"imageItem","textItem"},
        new int[]{R.id.image_item,R.id.text_item}
        );
        gridview=(GridView)MainActivity.this.findViewById(R.id.mygridview);
        gridview.setAdapter(adapter);
        gridview.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0,View arg1, int arg2, long arg3)
    {
    //此处switch选择事件,判断点击的是哪一项
    switch(arg2)
    {
    case 0:
    Toast.makeText(MainActivity.this, "开启来电伪装功能", Toast.LENGTH_SHORT).show();
    break;
    case 1:
    Toast.makeText(MainActivity.this, "开启短信伪装功能", Toast.LENGTH_SHORT).show();
    break;
    case 2:
    new AlertDialog.Builder(MainActivity.this)
    .setTitle("使用帮助")
    .setMessage("1.来电伪装:\n\r来电号码处填入电话号码,时间处填上你期望在多少分钟之后来电.\n\r2.短信伪装:\n\r短信号码填入手机号码,短信内容处填上将要接收的短信内容,在时间处填上期望在多少分钟之后接收到该短信")
    .setPositiveButton("OK",new android.content.DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int whichButton) {


}
}).show();
    break;
    case 3:
    new android.app.AlertDialog.Builder(MainActivity.this)
    .setTitle("关于")
    .setMessage("软件版本:1.1.0\n\r开发者:戴同武 \n\r")
    .setPositiveButton("OK", new android.content.DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int whichbutton) {
// TODO Auto-generated method stub

}
}).show();
    break;
    default :
    break;
    }
    }
});
    }




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

代码中使用SimleAdapter数据适配器,Toast和AlertDialog控件提示信息。

(7)下面是运行结果:

a.主界面
















b.点击来电伪装

















c.点击短信伪装

















d.点击帮助

















e.点击关于




好的,如果您想要使用 SimpleAdapter 适配器来显示数据,可以参考以下示例代码: ``` // 定义一个存储数据的 List,每个元素是一个 Map,代表一条数据记录 List<Map<String, Object>> dataList = new ArrayList<>(); Map<String, Object> data1 = new HashMap<>(); data1.put("title", "数据1"); data1.put("content", "这是数据1的内容"); dataList.add(data1); Map<String, Object> data2 = new HashMap<>(); data2.put("title", "数据2"); data2.put("content", "这是数据2的内容"); dataList.add(data2); Map<String, Object> data3 = new HashMap<>(); data3.put("title", "数据3"); data3.put("content", "这是数据3的内容"); dataList.add(data3); // 定义 SimpleAdapter 显示数据 SimpleAdapter adapter = new SimpleAdapter( this, dataList, android.R.layout.simple_list_item_2, // 使用系统自带的布局,每项有两个 TextView 显示数据 new String[]{"title", "content"}, // 数据项的 key 对应布局的 TextView id new int[]{android.R.id.text1, android.R.id.text2} ); // 获取 GridView 控件 GridView gridView = findViewById(R.id.grid_view); // 设置适配器 gridView.setAdapter(adapter); ``` 在这个示例,我们首先定义了一个 List,每个元素是一个 Map,代表一条数据记录。然后我们创建了一个 SimpleAdapter 适配器,将 List 的数据显示在 GridView 。 请注意,SimpleAdapter 的构造函数需要传入四个参数: - Context 对象,通常传入当前 Activity 实例。 - 数据源 List,每个元素是一个 Map,代表一条数据记录。 - 布局文件的 id,这里使用系统自带的简单布局 `android.R.layout.simple_list_item_2`,每项有两个 TextView 显示数据。 - 一个 String 数组,表示每个数据项要显示的内容的 key。 - 一个 int 数组,表示要显示数据的 TextView 的 id。 希望这个示例能够帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值