您的位置:首页 > 移动开发 > Android开发

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

2018-02-12 09:01 323 查看
今天,简单讲讲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登录可编辑下拉菜单 就讲完了。

就这么简单。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息