SimpleAdapter 的用法及点击事件中如何获取选中项的值
来源:互联网 发布:ubuntu glib版本 编辑:程序博客网 时间:2024/05/05 15:45
SimpleAdapter的使用步骤及点击事件中如何获取选中项的值:
一、首先我们需要先写一个布局文件item.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:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/pic" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text" android:textSize="25sp" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" /></LinearLayout>二、创建新的布局文件layout.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"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
三、
(SimpleAdapter)数据适配器的实现过程:
1.新建适配器simp_adapter=new SimpleAdapter<String>(context,data,resource,from,to);
context:上下文(this)
data:有特定泛型的集合数据源--一个Map所组成的List集合
(新建自定义List<Map<String,Object>> dataList并通过方法返回在此处)
<每一个Map都会去对应列表中的一行,每一个Map中的键必须包含所有在from中所指定的键>
resource:列表项的布局文件(自定义布局)from:记录Map中的键名(new String[]{布局文件的name})
to:绑定数据视图中的ID,与from成对应关系(new int[]{布局文件中ID})
2.添加数据源到适配器(上一步已包含)
3.视图(ListView)加载适配器
listView.setAdapter(simp_adapter);
4.数据源getdata();
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; }5.添加点击事件监听,获取选中项的值
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(); }
四、运行效果图
点击了apple选项:
点击了watermelon选项:
实现过程代码如下:
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(); }}
1 0
- SimpleAdapter 的用法及点击事件中如何获取选中项的值
- Delphi中如何点击DBgrid中的一行,而获取选中行的各字段的值
- gridview中嵌套checkbox,如何在选中事件中获取当前行的索引值
- 点击事件中获取点击的坐标
- Select的OnChange()事件中获取选中的值
- Flex中如何通过itemClick事件,阻止用户点击选中Tree的某一分支节点
- jquery获取和设置select选中的值/文本/索引及选中事件
- andriod中SimpleAdapter+listview,点击item 传值事件
- Android在ListView的onTouch事件中获取选中项的值
- simpleAdapter的使用和listview点击事件的简单实现
- SimpleAdapter及Toast的简单用法
- 如何获取绑定数据的combobox的选中值及选中text
- 【原创】javascript获取事件选中的值
- simpleadapter中按钮的响应事件
- Android中ListView添加事件并获取选中项的值
- Android中ListView添加事件并获取选中项的值
- Android中ListView添加事件并获取选中项的值
- GridView中如何获取所选中行的值?
- 自定义计步--圆弧
- 如何使用Android Studio打包混淆的Jar
- MVP+RxJava+Retrofit_Okhttp框架优秀开源项目推荐
- jpa 分页
- js格式化input手机号
- SimpleAdapter 的用法及点击事件中如何获取选中项的值
- Swift——数组
- apk反编译,smali文件修改,重新打包,java转samli插件在项目中的实际应用
- activity响应listview中button点击事件
- 用TensorFlow的Linear/DNNRegrressor预测数据
- java 线程中wait和notify使用讲解
- linux基础安全加固
- 【bzoj1042】[HAOI2008]硬币购物【dp预处理+容斥】
- poj 2719 Faulty Odometer (数学思维)