android 实现仿QQ登录可编辑下拉菜单
今天,簡單講講android里如何實現(xiàn)向QQ一樣的登錄后記住用戶名的下拉框。
這個其實也很簡單,網(wǎng)上搜索了一下,很多相關(guān)的資料,基本都是PopupWindow+ListView的方式,實現(xiàn)起來比較靈活。我也參考了一下,不過把他封裝成了自定義的控件,這里記錄一下。
效果:
這里只有使用別人地效果圖,因為最近我上傳的截圖發(fā)現(xiàn)在博客上無法顯示。其實我對界面做了優(yōu)化,因為這個別人的界面是沒有辦法在市場上的app使用的。
這里只列舉核心的代碼:
//主界面Activity代碼:
這里首先初始化ArrayList,為listView填充數(shù)據(jù),然后調(diào)用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數(shù)據(jù),與itemClickListene記錄點擊事件。然后設(shè)置了點擊后的消失的事件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(); // 設(shè)置輸入框 inputEditText.setText(msgList.get(position)); } };這里主要是點擊下拉框時,輸入框顯示點擊的內(nèi)容。
dismissListener的具體代碼:
/** * 監(jiān)聽popupwindow取消 */ private PopupWindow.OnDismissListener dismissListener = new PopupWindow.OnDismissListener() {@Override public void onDismiss() {downArroImageView.setBackgroundResource(R.drawable.arraw_down); } };
這里主要是下拉框消失時,輸入框右邊的按鈕復(fù)原的功能。
至于LoginSpinerPopWindow,它是繼承PopupWindow,里面有封裝了listView的自定義控件。
源碼下載:http://download.csdn.net/download/bzlj2912009596/10250190
android 實現(xiàn)仿QQ登錄可編輯下拉菜單 就講完了。
就這么簡單。
總結(jié)
以上是生活随笔為你收集整理的android 实现仿QQ登录可编辑下拉菜单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android wps表格如何设置边框颜
- 下一篇: android try catch并不影