首页 > 其他分享 >带删除按钮的ListView

带删除按钮的ListView

时间:2023-04-07 10:03:29浏览次数:37  
标签:删除 text View 按钮 import android ListView public view


不用说了,上图先:


import java.util.ArrayList;
import com.ql.adapter.DeletableAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;

public class Test_4_Activity extends Activity {
	private DeletableAdapter adapter;
	private ArrayList<String> text;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.test4);

		ListView list_view = (ListView) findViewById(R.id.list_view);

		text = new ArrayList<String>();
		text.add("111");
		text.add("222");
		text.add("333");
		text.add("444");
		// 初始化数据结束
		adapter = new DeletableAdapter(this, text);
		list_view.setAdapter(adapter);
		// list_view.setSelector(R.drawable.list_select_color);

		Button button = (Button) findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				text.add("10000");
				adapter.notifyDataSetChanged();
			}
		});

	}

}




import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.ql.activity.R;

public class DeletableAdapter extends BaseAdapter{
	private Context context;
	private ArrayList<String> text;
	public DeletableAdapter(Context context,ArrayList<String> text){
		this.context = context;
		this.text=text;
	}
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return text.size();
	}
	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return text.get(position);
	}
	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		final int index=position;
		View view=convertView;
		if(view==null){
			LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			view=inflater.inflate(R.layout.row_simple_list_item_2, null);
		}
		final TextView textView=(TextView)view.findViewById(R.id.simple_item_1);
		textView.setText(text.get(position));
		final ImageView imageView=(ImageView)view.findViewById(R.id.simple_item_2);
		imageView.setBackgroundResource(android.R.drawable.ic_delete);
		imageView.setTag(position);
		imageView.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				text.remove(index);
				notifyDataSetChanged();
				Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();
			}
		});
		return view;
	}
}



<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
	    <ImageView android:id="@+id/simple_item_2"
	    android:layout_width="wrap_content"
	    android:layout_height="fill_parent" 
	    android:layout_alignParentRight="true"
	    android:focusable="false"
	    />
  		<TextView android:id="@+id/simple_item_1"
	    android:layout_width="fill_parent" 
	    android:layout_height="fill_parent" 
	    android:layout_alignParentLeft="true"
	    />
</RelativeLayout>




这里要实现点击ListView里面的一个控件而不是选中一行。


最好重写Adapter,而不要使用其自带的SimpleAdapter,否则该子控件的事件就不那么好处理了!


  • 带删除按钮的ListView_java

  • 大小: 10.5 KB
  • 查看图片附件

标签:删除,text,View,按钮,import,android,ListView,public,view
From: https://blog.51cto.com/u_5454003/6174598

相关文章

  • Lazy延时加载的ListView
    使用的是第三方开发包CWAC-AdapterWrapper.jarpackagecom.ql.app;/***Copyright(c)2008-2009CommonsWare,LLCLicensedundertheApacheLicense,Version2.0(the"License");youmaynotusethisfileexceptincompliancewiththeLi......
  • threejs_交互_鼠标点击_添加物体_删除物体
    click点击添加物体,shirft+click点击删除物体<!DOCTYPEhtml><htmllang="en"><head> <metacharset="utf-8"> <title>three.jswebgl-interactive-voxelpainter</title> <metaname="viewport"conten......
  • 代码随想录Day22-Leetcode235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,4
    235.二叉搜索树的最近公共祖先题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/又玩了一天,手又生疏了好多;这道题看了题解,先用公共解法了,之前的题没刷,就给现在留坑了/***Definitionforabinarytreenode.*functionTree......
  • SwipeRefreshLayout和ListView的EmptyView共存冲突的问题
    SwipeRefreshLayout是android官方的下拉刷新控件;它内部有且只能有一个子控件;当一个ListView嵌入到它内部时,就不能为ListView带一个EmptyView了;于是很自然的想到将ListView和EmptyView纳入到一个父控件中;典型的像下面这样的布局:<android.support.v4.......
  • LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
    一切为了快速迭代importjava.util.ArrayList;importorg.json.JSONObject;importandroid.animation.ObjectAnimator;importandroid.os.Bundle;importandroid.support.v4.widget.SwipeRefreshLayout;importandroid.util.Log;importandroid.vie......
  • 关于ListView中使用GestureDetector冲突的解决办法
    在做OnGestureListener手势滑动界面的时候,会遇到这样的问题,就是当界面中含有ListView的时候,OnGestureListener的界面滑动就被ListView拦截并消费掉了。为了解决这个问题需要重写ListView的OnTouchListener接口:ListViewlistView=(ListView)findViewById(R......
  • 上拉下拉刷新,支持ListView,GridView,ScrollView
    开源项目PullToRefresh详解(一)——PullToRefreshListView类似Lollipop滚动溢出效果的下拉刷新布局:JellyRefreshLayouthttp://www.open-open.com/lib/view/open1437223823115.html网上很多这样的效果都是继承某个具体的AdapterView或ScrollView,这样很不通......
  • Listview中显示不同的视图布局
    1.使用场景在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。比如有些行为纯文本,有些行则是......
  • 横向滑动的ListView
    我通常把GridView设置成1行来代替横向的listview了,呵呵。下面这个类留着以后试试。publicclassHorizontalListViewextendsAdapterView<ListAdapter>{publicbooleanmAlwaysOverrideTouch=true;protectedListAdaptermAdapter;privateint......
  • 运用手势操作ListView中的Item
    如下面这个图:需要实现的功能是:用手指在某条记录上从左往右划一下,出现一条横线,用于表示这个菜已经上过了;倒过来划,取消这条横线,表示这个菜没上过。如何实现呢?看我的吧!首先需要一个Item的布局,在布局的最上方有一个ImageView用于显示这条横线,如果没有就把这个I......