1. 程式人生 > >SimpleAdapter 的用法及點選事件中如何獲取選中項的值

SimpleAdapter 的用法及點選事件中如何獲取選中項的值

package com.example.administrator.mydivlistview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{
    private ListView listview;
    private SimpleAdapter sim_adapter;
    private TextView text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        text=(TextView) findViewById(R.id.text);
        listview = (ListView) findViewById(R.id.listview);
        sim_adapter = new SimpleAdapter(this, getdata(), R.layout.item, new String[]{"pic", "text"}, new int[]{R.id.pic, R.id.text});
        listview.setAdapter(sim_adapter);
        listview.setOnItemClickListener(this);
    }

    private List<Map<String, Object>> getdata() {
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("pic", R.drawable.apple_pic);
        map.put("text", "apple");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.pear_pic);
        map.put("text", "pear");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.watermelon_pic);
        map.put("text", "watermelon");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.cherry_pic);
        map.put("text", "cherry");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.strawberry_pic);
        map.put("text", "strawberry");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.grape_pic);
        map.put("text", "grape");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.orange_pic);
        map.put("text", "orange");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.mango_pic);
        map.put("text", "mango");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.pineapple_pic);
        map.put("text", "pineapple");
        list.add(map);
        map = new HashMap<String, Object>();
        map.put("pic", R.drawable.banana_pic);
        map.put("text", "banana");
        list.add(map);
        return list;
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        /*adapterView是指當前的listview;
         *view是當前listview中的item的view的佈局,就是可用這個view獲取裡面控制元件id後操作控制元件
         * i是當前item在listview中介面卡的位置
         * l是當前item在listview裡第幾行的位置
         */
        //獲得選中項中的HashMap物件
        HashMap<String,String> map=(HashMap<String,String>)adapterView.getItemAtPosition(i);
        String Text=map.get("text");
        Toast.makeText(MainActivity.this,Text,Toast.LENGTH_SHORT).show();
    }
}