通过ListView,ImageButton,Popupwindow实现手机QQ登陆时用户名下拉功能
来源:互联网 发布:淘宝网的营销策略 编辑:程序博客网 时间:2024/04/30 21:17
本人用ListView,ImageButton,Popupwindow实现手机QQ登陆时用户名下拉功能,简单来说就是EditText的下拉功能,做得比较粗糙,但是基本功能还是都实现了,希望对大家有一些的帮助,还有一些功能没有实现,希望有大神能帮助我完成一下(在最后面).
附上代码:
MainActivity
package com.gbr.live;import java.util.ArrayList;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity { private static final String TAG = "MainActivity";public static final String EXTRA_N = "n"; boolean isCopy=false; private ListView listView; private ArrayList<String> data; private ArrayAdapter<String> adapter;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "onCreate"); listView = (ListView) findViewById(R.id.listView); data = new ArrayList<String>(); for (int i = 0; i < 30; i++) {data.add("item"+i);} adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); // 注册上下文菜单 registerForContextMenu(listView);}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();Log.d(TAG, "onRestart");}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();Log.d(TAG, "onStart");}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();Log.d(TAG, "onResume");}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();Log.d(TAG, "onPause");}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();Log.d(TAG, "onStop");}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();Log.d(TAG, "onDestroy");}//-----------------------------------选项菜单@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubLog.d(TAG, "onCreateOptionsMenu");getMenuInflater().inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onPrepareOptionsMenu(Menu menu) {// TODO Auto-generated method stubLog.d(TAG, "onPrepareOptionsMenu");menu.setGroupEnabled(R.id.action_setting, true);return super.onPrepareOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubLog.d(TAG, "onOptionsItemSelected");switch (item.getItemId()) {case R.id.action_next://点击了下一步Intent intent = new Intent();intent.setClass(this, NextActivity.class);intent.putExtra(EXTRA_N, Math.random());startActivity(intent);//finish();break;case R.id.action_setting:isCopy = true;invalidateOptionsMenu();break;}return super.onOptionsItemSelected(item);}@Overridepublic void onOptionsMenuClosed(Menu menu) {// TODO Auto-generated method stubLog.d(TAG, "onOptionsMenuClosed");super.onOptionsMenuClosed(menu);}//-----------------------------------上下文菜单@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubsuper.onCreateContextMenu(menu, v, menuInfo);int id = v.getId();if(id == R.id.listView){getMenuInflater().inflate(R.menu.context, menu);}}@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubAdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item .getMenuInfo();switch (item.getItemId()) {case R.id.edit:break;case R.id.remove:data.remove(info.position);adapter.notifyDataSetChanged();break;default:break;}return super.onContextItemSelected(item);}@Overridepublic void onContextMenuClosed(Menu menu) {// TODO Auto-generated method stubsuper.onContextMenuClosed(menu);} }
自定义的适配器MyAdapter
package com.gbr.popupwindow_02;import java.util.ArrayList;import java.util.HashMap;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageButton;import android.widget.TextView;public class MyAdapter extends BaseAdapter{Context context;ArrayList<HashMap<String, Object>> data;TextView textView;LayoutInflater inflater;public MyAdapter(Context context,ArrayList<HashMap<String, Object>> data, TextView textView) {this.context = context;this.data = data;this.textView = textView;inflater = LayoutInflater.from(context);}public int getCount() {return data.size();}@Overridepublic Object getItem(int position) {return data.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {Listname listname = null;if(convertView==null){listname = new Listname();convertView = inflater.inflate(R.layout.item_listview, null);listname.textView = (TextView) convertView.findViewById(R.id.num);listname.button = (ImageButton) convertView.findViewById(R.id.DelButton);convertView.setTag(listname);}else{listname = (Listname) convertView.getTag();}listname.textView.setText((String) data.get(position).get("qq"));listname.button.setImageResource((Integer) data.get(position).get("pic"));//设置删除按钮的监听listname.button.setOnClickListener(new OnClickListener() {public void onClick(View v) {data.remove(position);notifyDataSetChanged();textView.setText("");}});return convertView;}public class Listname{TextView textView;ImageButton button;}}
activity_main:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/holo_blue_bright" > <EditText android:id="@+id/user" android:inputType="text" android:hint="用户名" android:textColorHint="#000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="155dp" android:padding="8dp" android:background="@drawable/item_edit" android:ems="10" > <requestFocus /> </EditText> <EditText android:id="@+id/pwd" android:hint="密码" android:textColorHint="#000000" android:padding="8dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/user" android:layout_marginTop="-2dp" android:ems="10" android:inputType="textPassword" android:background="@drawable/item_pwd" /> <ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/user" android:layout_alignParentRight="true" android:layout_alignTop="@+id/user" android:layout_margin="8dp" android:src="@android:drawable/arrow_down_float" /></RelativeLayout>
item_listview:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:descendantFocusability="blocksDescendants"> <ImageButton android:id="@+id/DelButton" android:focusable="false" android:focusableInTouchMode="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" /> <TextView android:id="@+id/num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/DelButton" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="22dp" android:gravity="center" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /></RelativeLayout>
listview:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listView" android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/holo_blue_bright" android:layout_centerHorizontal="true" > </ListView></RelativeLayout>
ps:
未完成的功能:输入的时候不能只能匹配下面的号码,希望大神能教教我怎么做.
0 0
- 通过ListView,ImageButton,Popupwindow实现手机QQ登陆时用户名下拉功能
- popupWindow+listView实现qq登录下拉最近登录账号
- 干货一:通过自定义PopupWindow实现QQ菜单选项功能
- 实现下拉框显示所有曾经登陆的用户名的小功能
- Android 自定义PopupWindow 实现 ListView与PopupWindow结合下拉框
- 实现listview下拉刷新功能
- 安卓listView实现下拉刷新上拉加载滑动仿QQ的删除功能
- 用popupwindow和selector实现仿qq的下拉菜单
- 类似于手机qq空间的下拉tableView上面的图片放大的功能的实现
- 关于下拉列表的实现(spinner和PopupWindow+listview)
- 【Android】通过PopupWindow实现浏览器风格的下拉菜单
- PopupWindow-用户名与密码的登陆
- ListView通过PullToRefresh实现下拉刷新
- 自定义ListView实现下拉刷新功能
- 实现ListView的下拉刷新功能
- Popupwindow实现下拉菜单
- 类似qq登陆 记住密码功能的实现
- 腾讯开放平台中实现QQ登陆的功能
- unix编译器gcc和g++
- 测试环境安装11g dataguard
- java设计模式之工厂模式(2)
- error:error C2065: 'ConvertStringSecurityDescriptorToSecurityDescriptor' : undeclared identifier
- Android进程与线程基本知识
- 通过ListView,ImageButton,Popupwindow实现手机QQ登陆时用户名下拉功能
- FLV文件格式解析
- Material Design(六)
- syslog配置
- 倒 F型天线
- java中的各种路径的获取方式
- 海量数据批量插入本地测试平均1秒
- WP-Super Cache Garbage collection is not scheduled
- Java 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换