最近,刚搞android,要实现一个类似listview的东西,要其中每个item中均有不同的控件,且要每个控件均能接受点击事件并通知到底是哪个item中的哪个控件被点击了。 之前,在网上看到类似的帖子,能够实现每个item中添加多个控件,却不能具体定位到是那个item中的那个控件被点击了。 以下是具体代码,分析下具体步骤吧: 1.数据来源:我这里用了一个函数产生getData(); 2.主要是需要一个Adapter:由于我们的item中控件的扩展性,自己写了一个(如果只是显示下图片,文字,没有监听器可以直接使用ArrayAdapter)。 实现一个Adapter主要需要实现两个比较重要的函数public int getCount()和public View getView(int position, View convertView, ViewGroup parent),第一个函数返回显示的行数,第二个显示具体需要显示的内容。 具体内容,在代码中均有注释,也不是很复杂,可以自己建一个工程试一试,但需要做些必要修改(因为我是直接从我工程中拷贝的)。 import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MListView extends ListView { private List
|