通过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;}}


然后是XML文件:

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
原创粉丝点击