android 实现仿QQ登录可编辑下拉菜单

释放双眼,带上耳机,听听看~!

今天,简单讲讲android里如何实现向QQ一样的登录后记住用户名的下拉框。

这个其实也很简单,网上搜索了一下,很多相关的资料,基本都是PopupWindow+ListView的方式,实现起来比较灵活。我也参考了一下,不过把他封装成了自定义的控件,这里记录一下。

效果:

这里只有使用别人地效果图,因为最近我上传的截图发现在博客上无法显示。其实我对界面做了优化,因为这个别人的界面是没有办法在市场上的app使用的。

 

这里只列举核心的代码:

//主界面Activity代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputEditText = (EditText) findViewById(R.id.input);
downArroImageView = (ImageView) findViewById(R.id.down_arrow);
ll_down_arrow= (LinearLayout) findViewById(R.id.ll_down_arrow);
msgList = new ArrayList<String>();
// 对msgList进行赋值
for (int i = 0; i < 10; i++) {
msgList.add("11111111"+i);
}
//初始化PopupWindow
initPopupWindow();
}

这里首先初始化ArrayList,为listView填充数据,然后调用initPopupWindow初始化自定义的控件,具体代码

private void initPopupWindow() {
ll_down_arrow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
loginSpinerPopWindow.setWidth(inputEditText.getWidth());
loginSpinerPopWindow.showAsDropDown(inputEditText);
downArroImageView.setBackgroundResource(R.drawable.icon_up);
}
});
loginSpinerPopWindow = new LoginSpinerPopWindow<String>(this, msgList, itemClickListene);
loginSpinerPopWindow.setOnDismissListener(dismissListener);
}

这里初始化自定义控件LoginSpinerPopWindow时,传入了connext,ArrayList数据,与itemClickListene记录点击事件。然后设置了点击后的消失的事件dismissListener。

itemClickListene的具体代码:

/**
 * popupwindow显示的ListView的item点击事件
*/
private AdapterView.OnItemClickListener itemClickListene = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
loginSpinerPopWindow.dismiss();
// 设置输入框
inputEditText.setText(msgList.get(position));
}
};

这里主要是点击下拉框时,输入框显示点击的内容。

dismissListener的具体代码:

/**
 * 监听popupwindow取消
*/
private PopupWindow.OnDismissListener dismissListener = new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
downArroImageView.setBackgroundResource(R.drawable.arraw_down);
}
};

这里主要是下拉框消失时,输入框右边的按钮复原的功能。

至于LoginSpinerPopWindow,它是继承PopupWindow,里面有封装了listView的自定义控件。

源码下载:http://download.csdn.net/download/bzlj2912009596/10250190

 

android 实现仿QQ登录可编辑下拉菜单 就讲完了。

 

就这么简单。

人已赞赏
Android文章

Android <activity-alias>的使用

2020-4-9 2:01:48

Android文章

android try catch并不影响性能

2020-4-9 3:16:48

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索