日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/4/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 实现仿QQ登录可编辑下拉菜单 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天,簡單講講android里如何實現(xiàn)向QQ一樣的登錄后記住用戶名的下拉框。


這個其實也很簡單,網(wǎng)上搜索了一下,很多相關(guān)的資料,基本都是PopupWindow+ListView的方式,實現(xiàn)起來比較靈活。我也參考了一下,不過把他封裝成了自定義的控件,這里記錄一下。


效果:



這里只有使用別人地效果圖,因為最近我上傳的截圖發(fā)現(xiàn)在博客上無法顯示。其實我對界面做了優(yōu)化,因為這個別人的界面是沒有辦法在市場上的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填充數(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顯示的ListViewitem點擊事件 */ 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。