Android LlistView +Button +TextView

在Android开发App时候通常会有这样的需求:点击listView的某一行的Buttoon需要改变当前行的TextView的值,网上看了好多例子,最后自己写了一个Demo,代码如下:

 

 

 

package com.hz.h.view;

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

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class ListViewActivity extends Activity {
 /** Called when the activity is first created. */
 List<HashMap<String, String>> vlist = null;
 HashMap<String, String> map = null;
 ListView listV;
 TextView textNumber;
 PhotosListAdapters ada;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  addData();
  listV = (ListView) findViewById(R.id.listView);
  ada = new PhotosListAdapters(ListViewActivity.this,
    vlist);
  listV.setAdapter(ada);
 }

 public void addData() {
  vlist = new ArrayList<HashMap<String, String>>();
  for (int a = 0; a < 5; a++) {
   map = new HashMap<String, String>();
   map.put("guige", "红色" + a);
   map.put("textValue", "0");
   vlist.add(map);
  }
 }

 private class PhotosListAdapters extends BaseAdapter {
  private LayoutInflater layoutInflater;
  private List<HashMap<String, String>> photolist;

  public PhotosListAdapters(Context c,
    List<HashMap<String, String>> listentity) {
   layoutInflater = LayoutInflater.from(c);
   this.photolist = listentity;
  }

  class ViewHolderPhoto {
   ImageView gotakephoto;// 拍照
   TextView photoscolor;// 颜色
   TextView photocount;// 图片张数
   Button photocounbtn;// 图片张数
   Button photocounbtn2;// 图片张数
   HashMap<String, String> hsmap = null;
  }

  public int getCount() {
   return photolist.size();
  }

  public Object getItem(int position) {
   return photolist.get(position);
  }

  public long getItemId(int position) {
   return position;
  }

  public View getView(final int position, View convertView,
    ViewGroup parent) {
   // TODO Auto-generated method stub
   final ViewHolderPhoto viewholdpho;
   if (convertView == null) {
    convertView = layoutInflater.inflate(R.layout.listview_item,
      null);
    viewholdpho = new ViewHolderPhoto();

    viewholdpho.gotakephoto = (ImageView) convertView.findViewById(R.id.listview_photo);// 拍照
    viewholdpho.photoscolor = (TextView) convertView.findViewById(R.id.textValue1);// 颜色
    viewholdpho.photocount = (TextView) convertView.findViewById(R.id.textValue2);// 照片数
    viewholdpho.photocounbtn = (Button) convertView.findViewById(R.id.listview_button);// 照片数
    ListViewActivity.this.textNumber = viewholdpho.photocount;
    convertView.setTag(viewholdpho);
   } else {
    viewholdpho = (ViewHolderPhoto) convertView.getTag();
   }
   viewholdpho.photoscolor.setText(photolist.get(position).get("guige").toString());
   viewholdpho.photocount.setText(photolist.get(position).get("textValue").toString());
   viewholdpho.photocounbtn.setOnClickListener(new Lsn(position));

   return convertView;
  }

 }
 
 class Lsn implements View.OnClickListener{
  int position;
  public Lsn(int index) {
   this.position = index;
  }
  
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   int cc = 0;
   try {
    System.out.println(vlist.get(position).get("guige")+"第"+position+"项的值为"+vlist.get(position).get("textValue")+"===="+map);
    for(int a=0;a<vlist.size();a++){
     if(a==position){
      vlist.get(position).put("guige",  vlist.get(position).get("guige"));
      vlist.get(position).put("textValue",  (Integer.parseInt(vlist.get(position).get("textValue"))+1)+"");
     }
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   handlers.sendEmptyMessage(0);
  }
 };
 
 public void tet(){
  
 }
 
 Handler handlers = new Handler() {
  public void handleMessage(Message msg) {
   ada.notifyDataSetChanged();
  }
 };

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值