首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

ListView 中增添按钮,动态删除添加ItemView的操作(转)

2012-08-22 
ListView 中添加按钮,动态删除添加ItemView的操作(转)要实现添加按钮的操作,必须自定义Adapter,使用Button

ListView 中添加按钮,动态删除添加ItemView的操作(转)
要实现添加按钮的操作,必须自定义Adapter,使用Button View的setTag()方法,将Button所属的位置设置到tag当中
要实现动态添加删除ItemView的操作,必须首先调整调整Adapter所绑定的数据源,然后调用Adapter的notifyDataSetChanged()方法

以下为实现的一个实例

package com.jason.joysmsyd;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.ListActivity;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.View.OnClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class SendMain extends ListActivity implements OnClickListener{Button buttonMessage,buttonContact,buttonHistory;EditText textMessage;List<Map<String,String>> contacts = new ArrayList<Map<String,String>>();@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);this.setContentView(R.layout.layout_send);buttonMessage = (Button) this.findViewById(R.id.ButtonMessage);buttonContact = (Button) this.findViewById(R.id.ButtonContact);buttonHistory = (Button) this.findViewById(R.id.ButtonHistory);textMessage = (EditText)this.findViewById(R.id.EditTextMessage);textMessage.setText(this.getIntent().getExtras().getString("message"));}public void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.ButtonMessage:this.finish();break;case R.id.ButtonContact:{Intent intent = new Intent();intent.setAction("com.jason.action.contact");this.startActivityForResult(intent, 0);}break;case R.id.ButtonHistory:{Intent intent = new Intent();intent.setAction("com.jason.action.history");this.startActivityForResult(intent, 1);}break;}}protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data); if (requestCode == 0 && resultCode == RESULT_OK) {this.getcontactFromString(data.getExtras().getString(UserSelectActivity.RETURN_LIST));bindDataToList();}}private void getcontactFromString(String data) {if (data == null || data.length() == 0) {return;}String[] arrayContact = data.split("#");for (String singleContact : arrayContact) {if (singleContact != null && singleContact.length() > 0) {String[] props = singleContact.split(":");if (props.length == 2) {Map<String,String> contact = new HashMap<String,String>();contact.put("name", props[0]);contact.put("phone", props[1]);contacts.add(contact);}}}}private void bindDataToList(){this.setListAdapter(new MyAdapter());}public class MyAdapter extends BaseAdapter{public int getCount() {// TODO Auto-generated method stubreturn contacts.size();}public Object getItem(int position) {// TODO Auto-generated method stubreturn contacts.get(position);}public long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubLayoutInflater inflater = SendMain.this.getLayoutInflater(); final View view = inflater.inflate(R.layout.layout_user_item, null); final TextView textPhone = (TextView) view.findViewById(R.id.text1); final TextView textName = (TextView) view.findViewById(R.id.text2); Button button = (Button)view.findViewById(R.id.buttonDelete); textPhone.setText(contacts.get(position).get("phone")); textName.setText(contacts.get(position).get("name"));  button.setTag( position);  button.setOnClickListener(new OnClickListener(){public void onClick(View v) {// TODO Auto-generated method stubint position = Integer.parseInt(v.getTag().toString());contacts.remove(position);MyAdapter.this.notifyDataSetChanged();//SendMain.this.getListView().refreshDrawableState();}});   return view;}}}

转自:http://www.cnblogs.com/qzxia/archive/2010/11/29/1890959.html

热点排行