注册

package com.scme.ui;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast; import com.scme.bean.Students;
import com.scme.db.DBHelper; public class RegActivity extends Activity implements OnClickListener { private EditText et_Name, et_Pwd, et_Age;
private Button bt_Save, bt_Clear;
private DBHelper dao;
private RadioGroup rg_sex;
private RadioButton rg_nan, rg_nv;
private String sex = ""; private void init() { et_Name = (EditText) findViewById(R.id.et_Name);
et_Pwd = (EditText) findViewById(R.id.et_Pwd);
et_Age = (EditText) findViewById(R.id.et_Age);
bt_Save = (Button) findViewById(R.id.bt_Save);
bt_Clear = (Button) findViewById(R.id.bt_Clear);
rg_sex = (RadioGroup) findViewById(R.id.rg_sex);
rg_nan = (RadioButton) findViewById(R.id.rg_nan);
rg_nv = (RadioButton) findViewById(R.id.rg_nv);
dao = new DBHelper(this, null, null, 1);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reg_activity);
init();
bt_Save.setOnClickListener(this);
bt_Clear.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_Save:
String name = et_Name.getText().toString().trim();
String pwd = et_Pwd.getText().toString().trim();
rg_sex.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup arg0, int arg1) {
if (arg1 == R.id.rg_nan) {
sex = "男";
}
if(arg1 == R.id.rg_nv){
sex = "女";
}
}
}); int age = Integer.parseInt(et_Age.getText().toString().trim());
if (name.equals("")) {
Toast.makeText(RegActivity.this, "姓名不能为空", 1000).show();
return;
}
if (pwd.equals("")) {
Toast.makeText(RegActivity.this, "密码不能为空", 1000).show();
return;
}
if (sex.equals("")) {
Toast.makeText(RegActivity.this, "性别不能为空", 1000).show();
return;
}
//添加联系人
Students stu = new Students();
stu.setStuName(name);
stu.setStuPwd(pwd);
stu.setStuSex(sex);
stu.setStuAge(age);
dao.addStu(stu);
Toast.makeText(RegActivity.this, "添加联系人成功", 1000).show();
Intent intent = new Intent(RegActivity.this, LoginActivity.class);
startActivity(intent);
finish();
break; case R.id.bt_Clear:
// 取消注册
finish();
break;
}
} }

添加

package com.scme.ui;

import com.scme.bean.Tongxunlu;
import com.scme.db.DBHelper; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class AddActivity extends Activity implements OnClickListener { private EditText add_txl_etName,add_txl_etPhone,add_txl_etEmail,add_txl_etAddr; private Button add_txl_btSave,add_txl_btClear; private DBHelper dao; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_activity);
dao = new DBHelper(this, null, null, 1); add_txl_etName = (EditText) findViewById(R.id.add_txl_etName);
add_txl_etPhone = (EditText) findViewById(R.id.add_txl_etPhone);
add_txl_etEmail = (EditText) findViewById(R.id.add_txl_etEmail);
add_txl_etAddr = (EditText) findViewById(R.id.add_txl_etAddr); add_txl_btSave = (Button) findViewById(R.id.add_txl_btSave);
add_txl_btClear = (Button) findViewById(R.id.add_txl_btClear);
add_txl_btSave.setOnClickListener(this);
add_txl_btClear.setOnClickListener(this); } @Override
public void onClick(View v) {
String name = add_txl_etName.getText().toString().trim();
String phone = add_txl_etPhone.getText().toString().trim();
String email = add_txl_etEmail.getText().toString().trim();
String addr = add_txl_etAddr.getText().toString().trim(); if(v.getId() == R.id.add_txl_btClear){
finish();
}else if(v.getId() == R.id.add_txl_btSave){
if(name.equals("")){
Toast.makeText(AddActivity.this, "联系人姓名不能为空", 1000).show();
return ;
}if(phone.equals("")){
Toast.makeText(AddActivity.this, "电话号码不能为空", 1000).show();
return ;
} //添加联系人
Tongxunlu txl = new Tongxunlu();
txl.setTxlName(name);
txl.setTxlPhone(phone);
txl.setTxlEmail(email);
txl.setTxlAddr(addr);
dao.addTxl(txl);
Toast.makeText(AddActivity.this, "添加联系人成功", 1000).show();
Intent intent = new Intent(AddActivity.this, MainActivity.class);
startActivity(intent);
finish(); } }
}

登录

package com.scme.ui;

import com.scme.db.DBHelper;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class LoginActivity extends Activity implements OnClickListener { private EditText et_Name, et_Pwd;
private Button bt_login, bt_Reg;
private DBHelper dao; private void init() { et_Name = (EditText) findViewById(R.id.et_Name);
et_Pwd = (EditText) findViewById(R.id.et_Pwd);
bt_login = (Button) findViewById(R.id.bt_login);
bt_Reg = (Button) findViewById(R.id.bt_Reg);
dao = new DBHelper(this, null, null, 1);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_activity);
init();
bt_login.setOnClickListener(this);
bt_Reg.setOnClickListener(this); } @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_login:
String name = et_Name.getText().toString().trim();
String pwd = et_Pwd.getText().toString().trim();
boolean a = dao.login(name, pwd);
if (a) {
Toast.makeText(LoginActivity.this, "登陆成功", 1000).show();
Intent intent = new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "登陆失败", 1000).show();
}
break;
case R.id.bt_Reg:
Intent intent = new Intent(LoginActivity.this, RegActivity.class);
startActivity(intent);
break;
}
}
}

显示

package com.scme.ui;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView; import com.scme.bean.Tongxunlu;
import com.scme.db.DBHelper; public class MainActivity extends Activity { private EditText et_query;
private MyAdapter a;
private DBHelper dao;
private ListView lv_info;
private List<Tongxunlu> lists; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
// 获得显示页面的查询文本框
et_query = (EditText) findViewById(R.id.et_query);
// 获得ListView的id
lv_info = (ListView) findViewById(R.id.lvTXL);
// 实例化DBHelper
dao = new DBHelper(this, null, null, 0);
// 调用查询方法
lists = dao.queryName(null);
// 实例化适配器
a = new MyAdapter();
// 将适配器放入ListView中
lv_info.setAdapter(a);
// 当在查询文本框中输入数据是触发查询事件
et_query.addTextChangedListener(new TextWatcher() {
// 内容改变后触发
public void onTextChanged(CharSequence s, int start, int before,
int count) {
lists = dao.queryName(s.toString());
// 当ListView中的数据改变后让适配器自动更新
a = new MyAdapter();
// 将适配器放入ListView中
lv_info.setAdapter(a);
} public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
} public void afterTextChanged(Editable s) {
}
}); } /**
* 返回页面重新查询
*/
protected void onRestart() {
super.onRestart();
lists = dao.queryName(null);
a = new MyAdapter();
// 将适配器放入ListView中
lv_info.setAdapter(a);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(1, 1, 1, "新增联系人");
menu.add(1, 2, 2, "退出");
return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// 判断点击的菜单的ID
if (item.getItemId() == 1) {
Intent intent = new Intent(MainActivity.this, AddActivity.class);
// startActivity(intent);
startActivityForResult(intent, 1);
} else {
finish();
}
return super.onOptionsItemSelected(item);
} public class MyAdapter extends BaseAdapter { public int getCount() {
return lists.size();
} public Object getItem(int arg0) {
return null;
} public long getItemId(int arg0) {
return 0;
} public View getView(int i, View view, ViewGroup arg2) {
View v = null;
ViewHolder vh;
final Tongxunlu txl = lists.get(i);
if (view == null) {
// 说明当前这一行不是重用的
// 加载行布局文件,产生具体的一行
v = getLayoutInflater().inflate(R.layout.list_view, null);
// 创建存储一行控件的对象
vh = new ViewHolder();
vh.name = (TextView) v.findViewById(R.id.te_lx_name);
vh.phone = (TextView) v.findViewById(R.id.te_lx_phone);
vh.update = (Button) v.findViewById(R.id.list_item_btnUpdate);
vh.del = (Button) v.findViewById(R.id.list_item_btnDel); v.setTag(vh);
vh.del.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
dao.delTxl(txl.get_id());
lists = dao.queryName(null);
a = new MyAdapter();
// 将适配器放入ListView中
lv_info.setAdapter(a);
}
});
} else {
v = view;
// 取出隐藏在行中的Tag--取出隐藏在这一行中的vh控件缓存对象
vh = (ViewHolder) view.getTag(); }
// 从ViewHolder缓存的控件中改变控件的值
// 这里主要是避免多次强制转化目标对象而造成的资源浪费
vh.name.setText(txl.getTxlName());
vh.phone.setText(txl.getTxlPhone());
return v;
} // 存储一行中的控件(缓存作用)---避免多次强转每行的控件
class ViewHolder {
TextView name;
TextView phone;
Button update;
Button del;
}
}
}

ListView的优化

public class MyAdapter extends BaseAdapter {

        public int getCount() {
return lists.size();
} public Object getItem(int arg0) {
return null;
} public long getItemId(int arg0) {
return 0;
} public View getView(int i, View view, ViewGroup arg2) {
View v = null;
ViewHolder vh;
final Tongxunlu txl = lists.get(i);
if (view == null) {
// 说明当前这一行不是重用的
// 加载行布局文件,产生具体的一行
v = getLayoutInflater().inflate(R.layout.list_view, null);
// 创建存储一行控件的对象
vh = new ViewHolder();
vh.name = (TextView) v.findViewById(R.id.te_lx_name);
vh.phone = (TextView) v.findViewById(R.id.te_lx_phone);
vh.update = (Button) v.findViewById(R.id.list_item_btnUpdate);
vh.del = (Button) v.findViewById(R.id.list_item_btnDel); v.setTag(vh);
vh.del.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
dao.delTxl(txl.get_id());
lists = dao.queryName(null);
a = new MyAdapter();
// 将适配器放入ListView中
lv_info.setAdapter(a);
}
});
} else {
v = view;
// 取出隐藏在行中的Tag--取出隐藏在这一行中的vh控件缓存对象
vh = (ViewHolder) view.getTag(); }
// 从ViewHolder缓存的控件中改变控件的值
// 这里主要是避免多次强制转化目标对象而造成的资源浪费
vh.name.setText(txl.getTxlName());
vh.phone.setText(txl.getTxlPhone());
return v;
} // 存储一行中的控件(缓存作用)---避免多次强转每行的控件
class ViewHolder {
TextView name;
TextView phone;
Button update;
Button del;
}
}

Android 在Activity中对SQLite的操作的更多相关文章

  1. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  2. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  3. Android 管理Activity中的fragments

    为了管理Activity中的fragments,需要使用FragmentManager,为了得到它,需要调用Activity中的getFragmentManager()方法,接下来详细介绍,感兴趣的朋 ...

  4. android应用activity中调出输入法后界面调整问题的解决

    在自己写的一个小应用中发现一个问题,当调出输入法后界面最下方的一个按钮被挤到了输入法的上面,这样很不美观,所以找了一下解决办法记录如下: 在AndroidManifest.xml文件中找到对应的act ...

  5. Android笔记——Activity中的回传数据案例(装备选择)

    1.创建程序: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  6. Android笔记——Activity中的数据传递案例(用户注冊)

    1.创建程序activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...

  7. Android课程---Activity中保存和恢复用户状态

    onSaveInstanceState 保存 在暂停之后和保存之前调用 onRestoreInstanceState 恢复 再启动之后和显示之前调用 package com.example.chens ...

  8. Android之activity中新建控件

    了解了5大布局,我们会发现这些布局都是静态的,如何让系统自动生成控件呢?这就需要activity来帮忙了 今天我们讲的就是用activity新建布局 用案例来说吧! 实现一个输入行和列自动生成表格并生 ...

  9. android 在activity中改变标题栏的标题 tabActivity的标题改变

    在activity中改变标题栏的标题是调用setTitle()方法,参数为标题名称. 而tabActivity跟Activity是一样的,因此在onCheckedChanged()方法中要动态改变标题 ...

随机推荐

  1. java jar包运行方法

    http://java-beginner-liyun.iteye.com/blog/736752一.怎么打jar包 第一步:选中要打jar包的工程 第二步:鼠标右击,选择Export... 第三步:选 ...

  2. 双十一前4小时,CentOS 6.5server启动错误排查

    11月10日晚上8点多.眼看要到双十一了... 但我要说的这段经历却和双十一毫无关系.哈哈. 这天准备向CentOS6.5server的svn上传一些文件,结果开机启动时,却出现了以下的界面: 这是肿 ...

  3. 多域名THINKPHP利用MEMCACHE方式共享SESSION数据(转)

    一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使 ...

  4. 以使用QSqlQuery向数据库中插入数据为例,做一个小结

    背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都 ...

  5. servletResponse 文件下载

    package response; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOEx ...

  6. 精彩回顾 HUAWEI HiAI 亮相华为北研所

    ​​从普通照片变成艺术品,仅需3秒: 从随手拍下的讲解胶片到生成规整清晰的ppt,只要瞬间…… 5月25日在华为北京研究所举办的HUAWEI HiAI技术合作交流会上,伴随着一声声惊叹,数款接入HUA ...

  7. Delphi下如何使程序在Win7/Vista上用管理员权限运行(转)

    Delphi程序必须在资源里面嵌入MANIFEST信息 一 首先编辑一个文件,内容如下: <?xml version="1.0" encoding="UTF-8&q ...

  8. 【PyCharm编辑器】之引用selenium包提示错误:Unresolved reference 'selenium' less... (Ctrl+F1)

    一.现象还原: 当新建.py文件时,需要引用selenium中的方法时,报错,提示红波浪线: Unresolved reference 'selenium' less... (Ctrl+F1) Thi ...

  9. 资源:Localization – 本地化

    Resource Dictionary –资源字典 所有的资源项在最终都会被整合到Resource Dictionary中的,也就是说无论是FrameworkElement的Resources,还是W ...

  10. 【BZOJ3291】Alice与能源计划 二分图最大匹配

    [BZOJ3291]Alice与能源计划 Description 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验. 为了方便,我们可以将火星 ...