解决方案 »

  1.   

     
    public class MainActivity extends Activity {
     public EditText useredittext,pwdedittext;
     public Button loginbutton,cancelbutton;
     public TextView textview01;
     public Spinner spinner01;
     String username,pwd;
     Boolean result;
     private DBOpenHelper dbhelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    loginbutton=(Button)findViewById(R.id.loginbutton);
    cancelbutton=(Button)findViewById(R.id.cancelbutton);
    useredittext=(EditText)findViewById(R.id.userEditText);
    pwdedittext=(EditText)findViewById(R.id.pwdEditText);
    spinner01=(Spinner)findViewById(R.id.spinner01);
    textview01=(TextView)findViewById(R.id.textview01);
    this.setTitle("用户登陆界面");
    final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.shopname,android.R.layout.simple_spinner_item); 
    //设置Spinner每个条目的显示样式 
    //3.声明一个ArrayAdapter并获取对象,用于配置Spinner显示的信息。 
    //对应参数说明:1.上下文变量;2.要显示的字符串Array;3.Spinner的显示样式 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    //为spinner绑定适配器,书写标题信息,绑定监听事件。 
    spinner01.setAdapter(adapter); 
    spinner01.setPrompt("信息:"); 
    spinner01.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> arg0, View arg1,
    int arg2, long arg3) {
    //获取所选择的地址
    textview01.setText("您盘点的门店是:"+adapter.getItem(arg2).toString());
    }
    public void onNothingSelected(AdapterView<?> arg0) {
    textview01.setText("您还没有选中");
    } });
    //设置取消按钮监听器
    cancelbutton.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v){
    //结束当前activity
    finish();
    }
    });
    //设置登录按钮监听器
    loginbutton.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v){
    //判断验证
    if(validate()){
    //判断是否登陆成功
    if(login()){
    //启动activity
    Intent intent=new Intent(MainActivity.this,ScanActivity.class);
    startActivity(intent);
    }else{
    //显示对话框
    showDialog("用户名称或者密码错误,请重新输入!");
    }
    }
    }
    });
    }
    protected void showDialog(String msg) {
    // TODO Auto-generated method stub
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setMessage(msg)
    .setCancelable(false)
    .setPositiveButton("确定",new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int id){
    }
    });
    AlertDialog alert=builder.create();
    alert.show();
    } private boolean validate() {
    // TODO Auto-generated method stub
    username=useredittext.getText().toString();
    if(username.equals("")){
    showDialog("用户名称是必填项!");
    return false;
    }
     pwd=pwdedittext.getText().toString();
    if(pwd.equals("")){
    showDialog("用户密码是必填项!");
    return false;
    }
    if(textview01.equals("")){
    showDialog("请选择要盘点的门店");
    return false;
    }
    return true;
    }
    //登录方法
    protected boolean login() {
    // TODO Auto-generated method stub
    //获得用户名称
    username=useredittext.getText().toString();
    //获得用户密码
    pwd=pwdedittext.getText().toString();
    //查询返回结果
     result=query(username,pwd);
    //对结果进行判断
    if(result)
    {
    return true;
      }
    else
    {
    return false;
    }
    }
    //查询
    private boolean query(String uname, String password) {
    // TODO Auto-generated method stub
    dbhelper=new DBOpenHelper(this);
    SQLiteDatabase sdb=dbhelper.getReadableDatabase();
    //查询获得游标
    Cursor result=sdb.query("User",null,null,null,null,null,null,null);  
    //判断游标是否为空
     if(result.moveToFirst())
        {
     int i;
      for(i=0;i<result.getCount();i++)
       {
     result.move(i);
     String name=result.getString(1);
     String inventory=result.getString(2);
     if(name.equals("uname")&&inventory.equals("password"))
     {
    return true;
     }   

    }
        if(i==result.getCount())
          return false;

       }
     return true ;


    } }
    然后DBOpenHelper类的代码如下
    public class DBOpenHelper extends SQLiteOpenHelper {
    //数据库名称
    private static final String DB_NAME="MOI.db";
    //表名称
    private static final String TBL_NAME="User";
    SQLiteDatabase db;
    //构造方法
    public DBOpenHelper(Context c){
    super(c,DB_NAME,null,1);
    }
    @Override
    public void onCreate(SQLiteDatabase db){
    //创建表SQL语句
    final String CREATE_TBL=" create table "
                      +" User(_id integer primary key autoincrement,userno text,username text) ";
    db.execSQL(CREATE_TBL);
    }
    //插入方法
    public void insert(ContentValues values)
    {
    //获得SQLiteDatabase 实例
    SQLiteDatabase db=getWritableDatabase();
    //插入
    db.insert(TBL_NAME, null, values);
    db.close();
    }
    //查询方法
    public Cursor query(){
    //获得SQLiteDatabase 实例
    SQLiteDatabase db=getWritableDatabase();
    Cursor c=db.query(TBL_NAME, null, null, null, null, null, null);
    return c;
    }
    //删除方法
    public void delete(int id){

    if(db==null)
    //获得SQLiteDatabase 实例
     db=getWritableDatabase();
    db.delete(TBL_NAME, "_id=?", new String[]{String.valueOf(id)});
    }
    public void close(){
    if(db!=null)
    db.close();
    }
    @Override
    public void onUpgrade(SQLiteDatabase db,int oldversion,int newversion){
    }}
    还望大侠给看一下哈,万分感谢哈。
      

  2.   

    你的创建表语句错了:
    1 最后少分号
    2 表名User与括号之间也应该加空格