仿qq记录历史账号

来源:互联网 发布:淘宝的老凤祥是真的吗 编辑:程序博客网 时间:2024/04/27 18:37

主页面

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <RelativeLayout        android:id="@+id/login_layout"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:paddingTop="70dip" >        <TextView            android:id="@+id/login_text"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="Login"            android:textColor="#716b60"            android:textSize="20sp" />        <FrameLayout            android:id="@+id/username_layout"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_below="@id/login_text"           >           <EditText                android:id="@+id/username"               android:layout_width="300dip"               android:layout_height="50dip"               android:hint="Please input your username"               android:background="@drawable/login_input"               android:contentDescription="@string/app_name"               />           <ImageButton                android:id="@+id/dropdown_button"               android:layout_width="wrap_content"               android:layout_height="wrap_content"               android:layout_gravity="right|center_vertical"               android:layout_marginRight="5dip"               android:background="@drawable/login_input_arrow"               android:contentDescription="@string/app_name"               />        </FrameLayout>        <EditText             android:id="@+id/password"            android:layout_width="300dip"            android:layout_height="50dip"            android:layout_below="@id/username_layout"            android:background="@drawable/login_input"            android:hint="please input your password"            android:inputType="textPassword"            />        <RelativeLayout             android:id="@+id/remember_layout"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_below="@id/password"            android:layout_marginLeft="10dip"            >            <Button                 android:id="@+id/login"                android:layout_width="300dip"                android:layout_height="50dip"                android:layout_marginTop="20dip"                android:background="@drawable/login_selected"                android:text="Login"                />        </RelativeLayout>    </RelativeLayout></RelativeLayout>

MainActivity

这里写代码片public class MainActivity extends Activity implements OnClickListener {    private EditText mUserName;    private EditText mPassword;    private Button mLoginButton;    private ImageButton mDropDown;    private DBHelper dbHelper;    private PopupWindow pop;    private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initWidget();    }    private void initWidget() {        dbHelper = new DBHelper(this);        mUserName = (EditText) findViewById(R.id.username);        mPassword = (EditText) findViewById(R.id.password);        mLoginButton = (Button) findViewById(R.id.login);        mDropDown = (ImageButton) findViewById(R.id.dropdown_button);        mLoginButton.setOnClickListener(this);        mDropDown.setOnClickListener(this);        initLoginUserName();    }    private void initLoginUserName() {        // TODO Auto-generated method stub        List<String> usernames = dbHelper.queryAllUserName();        if (usernames.size() > 0) {            String tempName = usernames.get(usernames.size() - 1);            mUserName.setText(tempName);            mPassword.setText(null);        }        mUserName.addTextChangedListener(new TextWatcher() {            @Override            public void onTextChanged(CharSequence s, int start, int before,                    int count) {                // TODO Auto-generated method stub                mPassword.setText("");            }            @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {                // TODO Auto-generated method stub            }            @Override            public void afterTextChanged(Editable s) {                // TODO Auto-generated method stub            }        });    }    @Override    public void onClick(View v) {        // TODO Auto-generated method stub        switch (v.getId()) {        case R.id.login:            String username = mUserName.getText().toString();            String password = mPassword.getText().toString();            dbHelper.insertOrUpdate(username);            myAdapter.notifyDataSetChanged();            break;        case R.id.dropdown_button:            if (pop != null) {                // initPop();                if (!pop.isShowing()) {                    pop.showAsDropDown(mUserName);                } else {                    pop.dismiss();                }            } else {                initPop();                if (!pop.isShowing()) {                    pop.showAsDropDown(mUserName);                } else {                    pop.dismiss();                }            }            break;        default:            break;        }    }    private void initPop() {        View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.lv,                null);        ListView lv = (ListView) view.findViewById(R.id.lv);        List<String> usernames = dbHelper.queryAllUserName();        myAdapter = new MyAdapter(MainActivity.this, usernames);        lv.setAdapter(myAdapter);        pop = new PopupWindow(MainActivity.this);        pop.setContentView(view);        pop.setWidth(mUserName.getWidth());        pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);        pop.setFocusable(true);        pop.setOutsideTouchable(true);        pop.setBackgroundDrawable(getResources().getDrawable(R.drawable.white));    }    public class MyAdapter extends BaseAdapter {        private List<String> list;        public MyAdapter(MainActivity mainActivity, List<String> usernames) {            // TODO Auto-generated constructor stub            this.list = usernames;        }        @Override        public int getCount() {            // TODO Auto-generated method stub            return list.size();        }        @Override        public Object getItem(int position) {            // TODO Auto-generated method stub            return list.get(position);        }        @Override        public long getItemId(int position) {            // TODO Auto-generated method stub            return position;        }        @Override        public View getView(final int position, View convertView,                ViewGroup parent) {            // TODO Auto-generated method stub            ViewHolder holder;            if (convertView == null) {                holder = new ViewHolder();                convertView = LayoutInflater.from(MainActivity.this).inflate(                        R.layout.dropview_item, null);                holder.tv = (TextView) convertView.findViewById(R.id.textView);                holder.iv = (ImageView) convertView.findViewById(R.id.delete);                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }            holder.tv.setText(list.get(position));            holder.tv.setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    // TODO Auto-generated method stub                    mUserName.setText(list.get(position));                    // list.remove(position);                    // notifyDataSetChanged();                    pop.dismiss();                }            });            holder.iv.setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    // TODO Auto-generated method stub                    dbHelper.delete(list.get(position));                    list.remove(position);                    notifyDataSetChanged();                }            });            return convertView;        }        class ViewHolder {            TextView tv;            ImageView iv;        }    }}

数据库帮助类

public class DBHelper {    public static final int DB_VERSION = 1;    public static final String DB_NAME = "example.db";    public static final String USER_TABLE_NAME = "user_table";    public static final String[] USER_COLS = { User.USERNAME };    private SQLiteDatabase db;    private DBOpenHelper dbOperHelper;    public DBHelper(Context context) {        this.dbOperHelper = new DBOpenHelper(context);        if (this.db == null) {            this.db = this.dbOperHelper.getWritableDatabase();        }    }    /**     * 添加一条记录     *      * @param userName     * @param password     * @return     */    public long insertOrUpdate(String userName) {        boolean isUpdate = false;        // String usernames[] = queryAllUserName();        List<String> usernames = queryAllUserName();        // for (int i = 0; i < usernames.length; i++) {        //        // if (userName.equals(usernames[i])) {        // isUpdate = true;        // }        // }        for (int i = 0; i < usernames.size(); i++) {            if (userName.equals(usernames.get(i))) {                isUpdate = true;            }        }        long id = -1;        if (isUpdate) {            id = update(userName);        } else {            if (db != null) {                ContentValues values = new ContentValues();                values.put(User.USERNAME, userName);                // values.put(User.PASSWORD, password);                id = db.insert(USER_TABLE_NAME, null, values);            }        }        return id;    }    /**     * 删除一条记录     *      * @param userName     * @return     */    public long delete(String userName) {        int id = db.delete(USER_TABLE_NAME, User.USERNAME + " = '" + userName                + "'", null);        return id;    }    /**     * 更新表     *      * @param username     * @param password     * @return     */    public long update(String username) {        ContentValues values = new ContentValues();        values.put(User.USERNAME, username);        // values.put(User.PASSWORD, password);        long id = db.update(USER_TABLE_NAME, values, User.USERNAME + " = '"                + username + "'", null);        return id;    }    /**     * 查询表中所有的用户名     *      * @return     */    public List<String> queryAllUserName() {        List<String> list = new ArrayList<String>();        if (db != null) {            Cursor cursor = db.query(USER_TABLE_NAME, null, null, null, null,                    null, null);            int count = cursor.getCount();            // String[] userNames = new String[count];            if (count > 0) {                cursor.moveToFirst();                for (int i = 0; i < count; i++) {                    // userNames[i] = cursor.getString(cursor                    // .getColumnIndex(User.USERNAME));                    list.add(cursor.getString(cursor                            .getColumnIndex(User.USERNAME)));                    cursor.moveToNext();                }            }            return list;        } else {            return list;        }    }    // public int queryIsSavedByName(String username) {    //    // String sql = "select * from " + USER_TABLE_NAME + " where "    // + User.USERNAME + " = '" + username + "'";    // Cursor cursor = db.rawQuery(sql, null);    // int isSaved = 0;    //    // if (cursor.getCount() > 0) {    // cursor.moveToFirst();    // isSaved = cursor.getInt(cursor.getColumnIndex(User.ISSaved));    //    // }    // return isSaved;    // }    // public String queryPasswordByName(String username) {    // String sql = "select * from " + USER_TABLE_NAME + " where "    // + User.USERNAME + " = '" + username + "'";    // Cursor cursor = db.rawQuery(sql, null);    //    // String password = "";    // if (cursor.getCount() > 0) {    //    // cursor.moveToFirst();    // password = cursor.getString(cursor    // .getColumnIndexOrThrow(User.PASSWORD));    // }    // return password;    // }    public void cleanup() {        if (this.db != null) {            this.db.close();            this.db = null;        }    }    private static class DBOpenHelper extends SQLiteOpenHelper {        public DBOpenHelper(Context context) {            super(context, DB_NAME, null, DB_VERSION);        }        @Override        public void onCreate(SQLiteDatabase db) {            // TODO Auto-generated method stub            // db.execSQL("create table " + USER_TABLE_NAME + " (" + User._ID            // + " integer primary key, " + User.USERNAME + " text, "            // + User.PASSWORD + " text, " + User.ISSaved + " INTEGER");            // db.execSQL("create table " + USER_TABLE_NAME + " (" + User._ID            // + " integer primary key, " + User.USERNAME + " text, "            // + User.PASSWORD + " text, " + User.ISSaved + " INTEGER) ");            db.execSQL("create table " + USER_TABLE_NAME + " (" + User._ID                    + " integer primary key, " + User.USERNAME + " text) ");        }        @Override        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {            // TODO Auto-generated method stub            db.execSQL("DROP TABLE IF EXISTS " + USER_TABLE_NAME);            onCreate(db);        }    }}

源代码地址
http://download.csdn.net/download/plj208/9217283

0 0