第一步:创建数据库,创建表,(添加、修改、删除)方法!

package example.gznprojklc;import android.content.ContentValues;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class SqliteDBHelper extends SQLiteOpenHelper {// 创建库public static final String CREATE_DATABASE = "MonitorMeasuration.db";// 表名public static final String USER_TABLE = "Users";public static final String FAULTSURFACE_TABLE = "FaultSurface";public static final String TUNNEL_TABLE = "Tunnel";public static final String POINT_TABLE = "Point";public static final String SURFACESUBSIDENCE_TABLE = "SurfaceSubsidence";public static final String DISPLACEMENT_TABLE = "Displacement";public static final String VAULTSETTLEMENT_TABLE = "ValutSettlement";// 创建表public static final String CREATE_USER_TABLE = "CREATE TABLE "+ USER_TABLE+ " (ID INTEGER PRIMARY KEY AUTOINCREMENT,UserName TEXT,UserPwd TEXT,DateTime TEXT,Reserve1 TEXT,Reserve2 TEXT,Reserve3 TEXT);";private SQLiteDatabase db;public SqliteDBHelper(Context context) {super(context, CREATE_DATABASE, null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {this.db = db;db.execSQL(CREATE_USER_TABLE);}// 关闭数据库public void Close() {if (db != null) {db.close();}}// 添加数据public long Insert(ContentValues values, String TableName) {SQLiteDatabase db = this.getWritableDatabase();long count = db.insert(TableName, null, values);if (count == -1) {count = -1;} else {count = 1;}db.close();return count;}// 隧道删除数据public void Tunneldelete(int id) {if (db == null)db = this.getWritableDatabase();db.execSQL("delete from SurfaceSubsidence where ID=" + id);db.close();}// 断面删除数据public void Pointsdelete(int id) {if (db == null)db = this.getWritableDatabase();db.execSQL("delete from ValutSettlement where ID=" + id);db.close();}// 测点删除数据public void Testdelete(int id) {if (db == null)db = this.getWritableDatabase();db.execSQL("delete from Displacement where ID=" + id);db.close();}// 地表沉降public void update(int id, ContentValues values, String TableName,String whereID) {SQLiteDatabase db = this.getWritableDatabase();String where = whereID + " = ?";String[] whereValue = { Integer.toString(id) };db.update(TableName, values, where, whereValue);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}

  第二步:用户登录后台代码(注:用户登录是在有网络的时候才能登录,第一次登录成功后第二次可以关闭网络登录,这里是调用了Asp.Net平台开发的WebService接口)。
在这里需要导入一个jar包:ksoap2-android-assembly-2.3-jar-with-dependencies.jar 放在libs文件夹下即可!

package example.gznprojklc;import java.text.SimpleDateFormat;import java.util.Date;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.MarshalBase64;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.AndroidHttpTransport;import android.net.ConnectivityManager;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentValues;import android.content.Context;import android.content.Intent;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.view.Menu;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 {public SqliteDBHelper helper;public EditText txtUserName;public EditText txtUserPwd;public Button btnLogin;public SQLiteDatabase db;public int userId;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login);txtUserName = (EditText) findViewById(R.id.txtUserName);txtUserPwd = (EditText) findViewById(R.id.txtUserPwd);txtUserName.requestFocus();txtUserName.setCursorVisible(true);btnLogin = (Button) findViewById(R.id.btnLogin);btnLogin.setOnClickListener(loginlistener);}// 用户登录OnClickListener loginlistener = new OnClickListener() {@Overridepublic void onClick(View v) {String url = "http://117.34.91.188:8055/WebServices/login.asmx";String nameSpace = "http://tempuri.org/";String SOAP_ACTION = "http://tempuri.org/LoginInfo";String method = "LoginInfo";String userName = txtUserName.getText().toString();String userPwd = txtUserPwd.getText().toString();SoapObject request = new SoapObject(nameSpace, method);request.addProperty("username", userName);request.addProperty("pwd", userPwd);SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = request;(new MarshalBase64()).register(envelope);AndroidHttpTransport transport = new AndroidHttpTransport(url);envelope.dotNet = true;try {if (isOpenNetWork()) {transport.call(SOAP_ACTION, envelope);if (envelope.getResponse() != null) {if (userName.equals("") || userPwd.equals("")) {ShowDialog("用户名或者密码不能为空");} else {Object object = envelope.getResponse();String str = object.toString();if (str.equals("anyType{}")) {ShowDialog("登录失败用户名或者密码错误");} else {userId = Integer.parseInt(str.toString());ListSelectActivity.id = userId;AddDepth.id=userId;CommonSpinner.userId=userId;ContentValues values = new ContentValues();SimpleDateFormat fort = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date curDate = new Date(System.currentTimeMillis());// 获取当前时间String time = fort.format(curDate);values.put("UserName", userName);values.put("UserPwd", userPwd);values.put("DateTime", time);values.put("Reserve1", "");values.put("Reserve2", "");values.put("Reserve3", "");helper = new SqliteDBHelper(getApplicationContext());db = helper.getReadableDatabase();Cursor c = db.rawQuery("select * from Users",null);if (c.getCount() == 0) {helper.Insert(values,helper.USER_TABLE);}Intent intent = new Intent();intent.setClass(LoginActivity.this,ListSummersActivity.class);startActivity(intent);Toast.makeText(getApplicationContext(), "登录成功",Toast.LENGTH_SHORT).show();}}}} else {if (userName.equals("") || userPwd.equals("")) {ShowDialog("请输入用户名或者密码");} else {if (IsLogin(userName, userPwd)) {Toast.makeText(getApplicationContext(), "本地登录成功",Toast.LENGTH_SHORT).show();Intent intent = new Intent();intent.setClass(LoginActivity.this,ListSummersActivity.class);startActivity(intent);} else {ShowDialog("登录失败用户名或者密码错误");}}}} catch (Exception e) {e.printStackTrace();Toast.makeText(getApplicationContext(), "网络或者服务器断开不能登录",Toast.LENGTH_SHORT).show();}}};// 用户登录public boolean IsLogin(String Name, String Pwd) {helper = new SqliteDBHelper(this);db = helper.getReadableDatabase();Cursor c = db.rawQuery("select * from Users where UserName=? and UserPwd=?",new String[] { Name.toString(), Pwd.toString() });if (c.moveToFirst() == true) {c.close();return true;}return false;}// 信息提示private void ShowDialog(String message) {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("提示");builder.setMessage(message);builder.setPositiveButton("确定", null);builder.create().show();}// 网络监测private boolean isOpenNetWork() {ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);if (connManager.getActiveNetworkInfo() != null) {return connManager.getActiveNetworkInfo().isAvailable();}return false;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.login, menu);return true;}}

  第三步:用户登录界面前台设计(注:布局建议使用RelativeLayout布局和LinearLayout布局,交叉布局)

<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"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".LoginActivity" >    <TextView        android:id="@+id/TextView01"        android:layout_width="80sp"        android:layout_height="40dp"        android:textSize="20sp"        android:gravity="center_vertical|left"                android:layout_alignLeft="@+id/textView1"        android:layout_below="@+id/txtUserName"        android:layout_marginTop="10dp"        android:text="@string/txt_Pwd" />    <Button        android:id="@+id/btnLogin"        android:layout_width="wrap_content"        android:layout_height="45dp"        android:layout_alignLeft="@+id/TextView01"        android:layout_alignRight="@+id/txtUserPwd"        android:layout_below="@+id/txtUserPwd"        android:textSize="20sp"        android:layout_marginTop="42dp"        android:text="@string/btn_Login" />    <TextView        android:id="@+id/textView2"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:layout_marginTop="29dp"        android:gravity="center"        android:text="@string/txt_Title"        android:textSize="35sp" />    <EditText        android:id="@+id/txtUserName"        android:layout_width="150sp"        android:layout_height="50dp"        android:layout_alignRight="@+id/textView2"        android:layout_alignTop="@+id/textView1"        android:layout_toRightOf="@+id/textView1"        android:hint=""        android:ems="10" >    </EditText>    <TextView        android:id="@+id/textView1"        android:layout_width="80sp"        android:layout_height="40dp"        android:gravity="center_vertical|left"        android:layout_alignLeft="@+id/textView2"        android:layout_below="@+id/textView2"        android:layout_marginLeft="14dp"        android:layout_marginTop="48dp"        android:text="@string/txt_Name"        android:textSize="20sp" />    <EditText        android:id="@+id/txtUserPwd"        android:layout_width="150sp"        android:layout_height="50dp"        android:inputType="textPassword"        android:layout_alignLeft="@+id/txtUserName"        android:layout_alignRight="@+id/txtUserName"        android:layout_alignTop="@+id/TextView01"        android:hint=""        android:ems="10" /></RelativeLayout>

  到这里的话,操作数据库用户登录基本就成功了!

更多相关文章

  1. android SpannableString使用详解
  2. Android中对Group的各种操作示例代码
  3. 编译Android时,添加或者删除system.img中第三方apk、更改Android
  4. Android创建和删除桌面快捷方式
  5. android ListView内数据的动态添加与删除
  6. android最近任务列表,删除某个应用操作
  7. android listview 长按弹出菜单--ContextMenu并进行删除操作
  8. Android(安卓)购物车(精仿)可删可全选与反选
  9. android之Notification的使用

随机推荐

  1. android 实现拖动效果
  2. getActionBar() return null
  3. android 通过构造创建进度对话框
  4. android 设置应用程序装在T卡的方法
  5. Android中使用自定义view实现轮播图
  6. Android 跳转到应用市场,评价App
  7. android 的 setTag
  8. 启动图启动界面的简单实现
  9. Android 自带Apps 学习---AlarmClock
  10. Android(Java):http options