不用說了,上圖先:
這里要實(shí)現(xiàn)點(diǎn)擊ListView里面的一個(gè)控件而不是選中一行。
最好重寫Adapter,而不要使用其自帶的SimpleAdapter,否則該子控件的事件就不那么好處理了!

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"); // 初始化數(shù)據(jù)結(jié)束 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>
這里要實(shí)現(xiàn)點(diǎn)擊ListView里面的一個(gè)控件而不是選中一行。
最好重寫Adapter,而不要使用其自帶的SimpleAdapter,否則該子控件的事件就不那么好處理了!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
