100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android – ListView 中添加按钮 动态删除添加ItemView的操作

Android – ListView 中添加按钮 动态删除添加ItemView的操作

时间:2023-09-07 20:07:38

相关推荐

Android – ListView 中添加按钮 动态删除添加ItemView的操作

转自:/promise_wg/blog/static/18912001462442857324/

要实现添加按钮的操作,必须自定义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 stub int position = Integer.parseInt(v.getTag().toString());contacts.remove(position);MyAdapter.this.notifyDataSetChanged();//SendMain.this.getListView().refreshDrawableState();}});return view;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。