当gallery中放置button时,点击gallery中的某一项会看到其中的button也会改变状态,虽然没有触发button的点击事件,但是还是看着很不爽,解决办法是,自定义gallery item控件,重写 protected void dispatchSetPressed(boolean pressed) 方法,注释掉其supper方法。
public class DoctorView extends LinearLayout{
private ImageView imageView;
private TextView tv_name;
private TextView tv_position;
private RadioButton rb_rest_count;
private RadioButton rb_no_rest;
private Button btn_appointment;
private Context context;
public DoctorView(Context context) {
super(context);
this.context = context;
}
public DoctorView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
this.context = context;
}
@Override
protected void onFinishInflate() {
// TODO Auto-generated method stub
super.onFinishInflate();
imageView = (ImageView) findViewById(R.id.imageView1);
tv_name = (TextView) findViewById(R.id.tv_name);
tv_position = (TextView) findViewById(R.id.tv_position);
rb_no_rest = (RadioButton) findViewById(R.id.rb_afternoon_rest_count);
rb_rest_count = (RadioButton) findViewById(R.id.rb_moring_rest_count);
btn_appointment = (Button) findViewById(R.id.btn_appointment);
}
public void setData(HashMap<String, Object> map) {
// TODO Auto-generated method stub
imageView.setImageDrawable((Drawable) map.get("doc_pic"));
tv_name.setText((String) map.get("doc_name"));
tv_position.setText((String) map.get("doc_position"));
rb_rest_count.setText("上午还可预约"+map.get("doc_rest_count") + "人");
}
@Override
protected void dispatchSetPressed(boolean pressed) {
// TODO Auto-generated method stub
// super.dispatchSetPressed(pressed);
}
}