Android ListView 之&nb…

 

 1,  MainActivity.java
package com.myadapter;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
   @Override
    protectedvoid onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       
       //声明一个 ListView
       ListView listview = newListView(this);           
       
       //定义数组  数组内容是 HashMap
       ArrayList> list=new ArrayList>();
       
       //每一个HashMap 对应ListView 中 每一个 item 的数据
       HashMapmap=new HashMap();
       map.put("Image", R.drawable.star);
       map.put("Text1", "周杰伦");
       map.put("Text2", "菊花台");
       map.put("Button", "更多");
       list.add(map);
       
       map=null;
       map=new HashMap();
       map.put("Image", R.drawable.ic_menu_send);
       map.put("Text1", "邓丽君");
       map.put("Text2", "在水一方");
       map.put("Button", "更多");
       list.add(map);
       
       map=null;
       map=new HashMap();
       map.put("Image", R.drawable.star);
       map.put("Text1", "蔡琴");
       map.put("Text2", "恰似你的温柔");
       map.put("Button", "更多");
       list.add(map);
       
       //适配器  绑定数据
       SimpleAdapter adapter=new SimpleAdapter(
               this,                            //上下文
               list,                            //要绑定的数据
               R.layout.item_layout,            //每一个 item 的布局
               new String[]{"Text1",   "Text2",   "Button",   "Image"},   //HashMap 中的 键名
               new int[]{   R.id.text1,  R.id.text2, R.id.button,R.id.image})//分别对应 item 中控件 id,与上一个参数 的键名一一上下对应
       {
                   //在这个重写的函数里设置 每个 item 中按钮的响应事件
                   @Override
                   public View getView(int position, View convertView,ViewGroupparent) {
                       final int p=position;
                       final View view=super.getView(position, convertView, parent);
                       Button button=(Button)view.findViewById(R.id.button);
                       button.setOnClickListener(new OnClickListener() {
                           
                           @Override
                           public void onClick(View v) {
                               
                               //警告框的写法
                               new AlertDialog.Builder(MainActivity.this)
                               .setTitle("More")
                               .setMessage("你选中了"+String.valueOf(p))
                               .setPositiveButton("确定", new DialogInterface.OnClickListener(){
                                   public void onClick(DialogInterface dialog, int which) {
                                       setTitle("点击了对话框上的确定按钮");
                                   }
                               })
                               .setNeutralButton("中立" ,new DialogInterface.OnClickListener(){ 
                                   public void onClick(DialogInterface dialog, int whichButton){ 
                                       setTitle("点击了对话框上的中立按钮"); 
                                   
                               })
                               .setNegativeButton("取消", new DialogInterface.OnClickListener(){ 
                                   public void onClick(DialogInterface dialog, int whichButton){ 
                                       setTitle("点击了对话框上的取消按钮"); 
                                   
                               })
                               .create()
                               .show();
                           }
                       });
                       return view;
                   }
       };
       //绑定适配器
       listview.setAdapter(adapter);       
       
       //设置背景颜色选择器
       listview.setSelector(R.drawable.on_item_selected);
       
       //设置焦点响应问题   同时要将 item 中的焦点 focusable 设置为 false
       listview.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
       
       //设置 item 的监听事件
       listview.setOnItemClickListener(new OnItemClickListener() {
           @Override
           public void onItemClick(AdapterView

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值