这两天无聊的时候突然想到过年短信群发的问题,直接群发短信别人收到了肯定不会有什么感觉,但是如果在短信的前面加上每个的名字,那么收短信的人肯定不会是觉得你在群发短信,因此我就想到了做这样一简单的应用,在短信的前面加上每个收信人的姓名,这里的收信人全部从联系人中选取。在联系人的选取界面是一个简单的listview,其中每个条目有三个组件,第一个是checkbox用来选取其所在的联系人,后面两个是textview分别用来显示联系人的姓名和号码。下面是实现的代码
package com.example.myownmessage;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.example.service.ContactsInfo;
import com.example.valuebean.People;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.view.ViewGroup;
public class ListContacts extends Activity {
private CheckBox checkbox = null;
private Button done = null;
private ArrayList groups = null; //将联系人对象也组成了一个数组
private ArrayList names = new ArrayList();
private ArrayList numbers = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listcontacts);
checkbox = (CheckBox)this.findViewById(R.id.check);
done = (Button)this.findViewById(R.id.done);
ListView list = (ListView) this.findViewById(R.id.list);
ArrayList
上面这段代码最为核心的就是自己构建了simpleadapter,并且重写了它的的getView方法,在这个方法里面为checkbox添加了监听器,当checkbox被选中的时候,将联系人的信息放进姓名和电话号码的list里面。
在完成这段代码之前,我也查看了很多其他人的博客,现在也慢慢的理解了一部分。被重写的getView方法它在什么时候调用的呢?就是在每一次item从屏幕外滑进屏幕内的时候,或者程序刚开始的时候创建第一屏item的时候。因此为每一个checkbox都注册了监听器,其中的参数ViewGroup parent 就是你设置adapter的那个组件里面封装一个viewGroup用来盛放item,position就是你选择的 item的第几条从0开始,convertView就是item上的布局layout或者组件。