gridview中的imagebutton能实现ontouch监听吗?
gridview中的imagebutton能实现ontouch监听吗?我想在实现gridview的adapter中加入一个imagebutton和一个textview,添加imagebutton触发事件,按上按钮时按钮图片变大,手离开按钮图片回原样 --------------------编程问答-------------------- 可以,在getview中添加imagebutton的事件@Override--------------------编程问答-------------------- --------------------编程问答-------------------- 还是不好使,点击imagebutton图片变大不能变小
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder=new ViewHolder();
convertView = mInflater.inflate(R.layout.listmulti, null);
holder.name = (TextView)convertView.findViewById(R.id.txtperson);
holder.phonenumber = (TextView)convertView.findViewById(R.id.txtNumber);
holder.chkSelect = (CheckBox)convertView.findViewById(R.id.chkbox);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
//holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));
holder.name.setText((String)mData.get(position).get("name"));
holder.phonenumber.setText((String)mData.get(position).get("phonenumber"));
final int pos = position;
holder.chkSelect.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked){
String phone = (String)mData.get(pos).get("phonenumber");
if(phone==null || phone.trim().length()==0){
String str = "当前联系人没有填写电话号码";
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
((CheckBox)buttonView).setChecked(false);
}else{
mData.get(pos).put("check","1");
}
}else{
mData.get(pos).put("check","0");
}
}
});
return convertView;
}
private final class ViewHolder{
public TextView name;
public TextView phonenumber;
public CheckBox chkSelect;
}
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) { // if it's not recycled, initialize some attributes
holder=new ViewHolder();
convertView = mInflater.inflate(R.layout.imagebutton_adapter_item, null);
holder.img = (ImageButton) convertView.findViewById(R.id.a_imagebutton);
holder.info = (TextView) convertView.findViewById(R.id.a_t_info);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
if(position_1==position){
holder.img.setBackgroundResource((Integer)item_d.get(position).get("img"));
holder.img.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
{
holder.img.setBackgroundResource((Integer)item_d.get(position).get("img"));
break;
}
case MotionEvent.ACTION_MOVE:
{
break;
}
case MotionEvent.ACTION_UP:
{
String str_i=Integer.toString(position);
Log.e("aaa", str_i);
holder.img.setBackgroundResource((Integer)item_s.get(position).get("img"));
break;
}
default:
break;
}
return false;
}
});
holder.info.setText((String)item_d.get(position).get("info"));
}else{
holder.img.setBackgroundResource((Integer)item_s.get(position).get("img"));
holder.info.setText((String)item_s.get(position).get("info"));
}
return convertView;
} // references to our images --------------------编程问答-------------------- 还是不好使,点击imagebutton图片变大不能变小
public View getView(final int position, View convertView, ViewGroup parent) {--------------------编程问答-------------------- 继承的是baseadapter吧 ?
if (convertView == null) { // if it's not recycled, initialize some attributes
holder=new ViewHolder();
convertView = mInflater.inflate(R.layout.imagebutton_adapter_item, null);
holder.img = (ImageButton) convertView.findViewById(R.id.a_imagebutton);
holder.info = (TextView) convertView.findViewById(R.id.a_t_info);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
if(position_1==position){
holder.img.setBackgroundResource((Integer)item_d.get(position).get("img"));
holder.img.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
{
holder.img.setBackgroundResource((Integer)item_d.get(position).get("img"));
break;
}
case MotionEvent.ACTION_MOVE:
{
break;
}
case MotionEvent.ACTION_UP:
{
String str_i=Integer.toString(position);
Log.e("aaa", str_i);
holder.img.setBackgroundResource((Integer)item_s.get(position).get("img"));
break;
}
default:
break;
}
return false;
}
});
holder.info.setText((String)item_d.get(position).get("info"));
}else{
holder.img.setBackgroundResource((Integer)item_s.get(position).get("img"));
holder.info.setText((String)item_s.get(position).get("info"));
}
return convertView;
} // references to our images
--------------------编程问答-------------------- 在getview()方法里面 写点击事件试一下。。。
补充:移动开发 , Android