本文主要是介绍适配器simpleadapt下编写监听器,1.可以编写OnitemListenter 再把item内部获得焦点的控件焦点设置成FALSE 就可以实现对整个item的监听,同时不同的arg2代表不同的i,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
适配器simpleadapt下编写监听器,1.可以编写OnitemListenter 再把item内部获得焦点的控件焦点设置成FALSE 就可以实现对整个item的监听,同时不同的arg2代表不同的item。
2.如果想对item内部的控件设置监听器,可以通过继承baseadapt来修改getview 可以在GetView内部加控件的监听器,同时注意 position代表的是不同item下的监听器,要想实现position的用处,要把getView内的参数position写成final int position
例如:1.这里的item是一个图片,通过点不同的图片实现监听 这里有两种方法实现(因为这里一个item内部只有一个控件图片,所以图片可以看成一个item,也可以看成一个控件就有了下面这两种方法)
(1) GridView gv = (GridView)findViewById(R.id.gridView1);
//为网格视图设置图片适配器gvAdapter
gv.setAdapter(new gvAdapter(this));
每一张图片相当于一个item
gv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(GridViewDemo.this, "你点击了第"+arg2+"张图片", Toast.LENGTH_SHORT).show();
}
});
(2)public View getView(final int position, View convertView, ViewGroup parent) {
ImageView iv;
if(convertView == null){
iv = new ImageView(context);
//为图片大小,长宽分别为80像素大小
iv.setLayoutParams(new GridView.LayoutParams(48,48));
//设置图片的显示模式,居中显示
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
}else{
iv = (ImageView)convertView;
}
//设置图片资源
iv.setImageResource(res_img[position]);
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//注意position 被设置成了final 否则不能实现
Toast.makeText(context, "Hello World!"+position, Toast.LENGTH_SHORT).show();
}
});
return iv;
}
2.public View getView(int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(layoutID, null);
for (int i = 0; i < flag.length; i++) {//备注1
if (convertView.findViewById(ItemIDs[i]) instanceof ImageView) {
ImageView iv = (ImageView) convertView.findViewById(ItemIDs[i]);
iv.setBackgroundResource((Integer) list.get(position).get(
flag[i]));
} else if (convertView.findViewById(ItemIDs[i]) instanceof TextView) {
TextView tv = (TextView) convertView.findViewById(ItemIDs[i]);
tv.setText((String) list.get(position).get(flag[i]));
}else{
//...备注2
}
}
addListener(convertView, position);
return convertView;
}
public void addListener(View convertView, final int position) {
((Button)convertView.findViewById(R.id.buttonView)).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(SimpleAdapterDemo.ma, "Hello World!"+position, Toast.LENGTH_LONG).show();
}
});
((TextView)convertView.findViewById(R.id.textView1)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(SimpleAdapterDemo.ma, "Hello World!"+position, Toast.LENGTH_LONG).show();
}
});
}
这篇关于适配器simpleadapt下编写监听器,1.可以编写OnitemListenter 再把item内部获得焦点的控件焦点设置成FALSE 就可以实现对整个item的监听,同时不同的arg2代表不同的i的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!