android spinner事件,android – 关闭Spinner点击Spinner外面

我有一些运气,即使它不能完全奏效.

微调适配器的获取视图:

public View getView(int position, View v, ViewGroup parent) {

if (v == null) {

LayoutInflater mLayoutInflater = mActivity.getLayoutInflater();

v = mLayoutInflater.inflate(R.layout.user_row, null);

}

View tempParent = (View) parent.getParent().getParent().getParent();

tempParent.setOnTouchListener(new MyOnTouchListener(mActivity));

mActivity.setOpen(true);

User getUser = mUsers.get(position);

return v;

}

本体聆听者:

public class MyOnTouchListener implements OnTouchListener{

private MyActivity mOverall;

public MyTouchListener(MyActivity overall) {

mOverall = overall;

}

public boolean onTouch(View v, MotionEvent event) {

if (mOverall.getOpen()) {

mOverall.getWindow().setContentView(R.layout.main); //reset your activity screen

mOverall.initMainLayout(); //reset any code. most likely what's in your oncreate

}

return false;

}

}

在项目选择的听众:

public class MySelectedListener implements OnItemSelectedListener {

public void onItemSelected(AdapterView> parent, View view, int pos,

long id) {

setUser(pos); //or whatever you want to do when the item is selected

setOpen(false);

}

public void onNothingSelected(AdapterView> parent) {}

}

活动

您使用微调器的活动应该有一个全局变量mOpen与get和set方法.这是因为即使列表关闭后,该套头倾听者倾向于保留.

这种方法的局限性:

如果您在微调器和选项之间或选项旁边触摸,则关闭.触摸上方的微调器和下方的选项仍然不会关闭它.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值