• JSON


    myeclipse接口


    public String loginb(String phone, String pwd) throws  Exception,SQLException {
                
                ConnectDatabase();
        
                
                String sql="select id,flag from user where phone=? and password=?";
                ps=con.prepareStatement(sql);
                ps.setString(1, phone);
                ps.setString(2, pwd);
                rs=ps.executeQuery();
                    
                if(rs.next()){
    
    
                    int id=rs.getInt(1);
                    int flag=rs.getInt(2);
                    User u =new User();
                    u.setId(id);
                    u.setId(flag);
                    u.setPhone(phone);
                    u.setPassword(pwd);
    //                return u;
    //                写成json数据
                    if(u!=null){
                    Gson gson=new Gson();
                    String json=gson.toJson(u);
                    return json;
                    
                    }
                    
                }
                closeResource();
                return null;
        }
        
    View Code
    Android Studio


    package com.qh.androiddemo;
    
    import android.animation.Animator;
    import android.animation.AnimatorListenerAdapter;
    import android.annotation.TargetApi;
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.content.pm.PackageManager;
    import android.os.StrictMode;
    import android.renderscript.Int2;
    import android.support.annotation.NonNull;
    import android.support.design.widget.Snackbar;
    import android.support.v7.app.AppCompatActivity;
    import android.app.LoaderManager.LoaderCallbacks;
    import android.content.ContentResolver;
    import android.content.CursorLoader;
    import android.content.Loader;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.AsyncTask;
    import android.os.Build.VERSION;
    import android.os.Build;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.text.TextUtils;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.inputmethod.EditorInfo;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.qh.androiddemo.util.ConfigUtil;
    import com.qh.androiddemo.util.SoapUtil;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    
    import static android.Manifest.permission.READ_CONTACTS;
    import static android.R.attr.id;
    
    /**
     * A login screen that offers login via email/password.
     */
    public class LoginActivity extends AppCompatActivity  {
    
        /**
         * Id to identity READ_CONTACTS permission request.
         */
        private static final int REQUEST_READ_CONTACTS = 0;
    
        /**
         * A dummy authentication store containing known user names and passwords.
         * TODO: remove after connecting to a real authentication system.
         */
        private static final String[] DUMMY_CREDENTIALS = new String[]{
                "foo@example.com:hello", "bar@example.com:world"
                //           Toast.makeText(getApplicationContext(), "登录失败!", Toast.LENGTH_LONG).show();
    
        };
        /**
         * Keep track of the login task to ensure we can cancel it if requested.
         */
        private UserLoginTask mAuthTask = null;
    
        // UI references.
        private AutoCompleteTextView mEmailView;
        private EditText mPasswordView;
        private View mProgressView;
        private View mLoginFormView;
        ConfigUtil configUtil;
    
    
        private SharedPreferences sp;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            // Set up the login form.
            //获得实例对象
            sp = this.getSharedPreferences("userInfo", Context.MODE_WORLD_READABLE);
    
            if(sp.getBoolean("AUTO_ISCHECK", true))
            {
    
    
                //跳转界面
                Intent intent = new Intent(LoginActivity.this,index.class);
                LoginActivity.this.startActivity(intent);
    
            }
            configUtil=new ConfigUtil(this);
    
            mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
    
    
    
            mPasswordView = (EditText) findViewById(R.id.password);
            mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
                    if (id == R.id.login || id == EditorInfo.IME_NULL) {
                        attemptLogin();
                        return true;
                    }
                    return false;
                }
            });
    
            Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
    
    
            StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
    
            mEmailSignInButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View view) {
                    attemptLogin();
                }
            });
    
            mLoginFormView = findViewById(R.id.login_form);
            mProgressView = findViewById(R.id.login_progress);
        }
    
        public void reg(View v) {
    
            Intent intent=new Intent(LoginActivity.this,RegActivity.class);
            startActivity(intent);
    
        }
        public void wjmm(View v){
            Intent intent=new Intent(LoginActivity.this,PasswordActivity.class);
            startActivity(intent);
    
        }
    
        /**
         * Attempts to sign in or register the account specified by the login form.
         * If there are form errors (invalid email, missing fields, etc.), the
         * errors are presented and no actual login attempt is made.
         */
        private void attemptLogin() {
            if (mAuthTask != null) {
             return ;
    
            }
    
    
    
            // Reset errors.
            mEmailView.setError(null);
            mPasswordView.setError(null);
    
            // Store values at the time of the login attempt.
            String email = mEmailView.getText().toString();
            String password = mPasswordView.getText().toString();
    
            boolean cancel = false;
            View focusView = null;
    
            // Check for a valid password, if the user entered one.
            if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) {
                mPasswordView.setError(getString(R.string.error_invalid_password));
                focusView = mPasswordView;
                cancel = true;
            }
    
            // Check for a valid email address.
            if (TextUtils.isEmpty(email)) {
                mEmailView.setError(getString(R.string.error_field_required));
                focusView = mEmailView;
                cancel = true;
            } else if (!isEmailValid(email)) {
                mEmailView.setError(getString(R.string.error_invalid_email));
                focusView = mEmailView;
                cancel = true;
            }
    
            if (cancel) {
                // There was an error; don't attempt login and focus the first
                // form field with an error.
                focusView.requestFocus();
            } else {
                // Show a progress spinner, and kick off a background task to
                // perform the user login attempt.
                showProgress(true);
                mAuthTask = new UserLoginTask(email, password);
                mAuthTask.execute((Void) null);
                login();
    
            }
        }
        private void login(){
            String endPort = "cre_ServicePort";
            String method="loginb_service";
            Object[] objects=new Object[]{
                    mEmailView.getText().toString(),
                    mPasswordView.getText().toString()
            };
            SoapUtil soapUtil = new SoapUtil();
            Object object = soapUtil.connect(endPort,method,objects);
    
    
        if(object.toString()!=null){
    
    //        configUtil.setUserJson(object.toString());
    
            //记住用户名、密码、
            SharedPreferences.Editor editor = sp.edit();
            editor.putString("USER_NAME", object.toString());
            editor.putBoolean("AUTO_ISCHECK", true);
            editor.commit();
    
    //        SharedPreferences sharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE);
            //实例化SharedPreferences.Editor对象
    //        SharedPreferences.Editor editor = sharedPreferences.edit();
            //用putString的方法保存数据
    //        editor.putBoolean("USER_ISLOGIN",true);
    //        editor.putString("USER_ID", object.toString());
    //        editor.putString("USER_PWD", "pwd123");
            //提交当前数据
    //        editor.apply();
    
    //        Toast.makeText(getApplicationContext(),
    //                sp.getString("USER_NAME",object.toString())+ sp.getBoolean("AUTO_ISCHECK",true),
    //                Toast.LENGTH_LONG).show();
    
    //        解析json数据
            String jsonString=sp.getString("USER_NAME",object.toString());
    
            JSONObject demoJson = null;
            try {
                demoJson = new JSONObject(jsonString);
    //            String name = demoJson.getString("phone");
                int id=demoJson.getInt("id");
                String flag = demoJson.getString("flag");
    
                Toast.makeText(getApplicationContext(),
                        "flag:"+flag+",id:"+id,
                        Toast.LENGTH_LONG).show();
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
    
    
    
    //        Toast.makeText(getApplicationContext(), object.toString(), Toast.LENGTH_LONG).show();
           ;
            Intent intent = new Intent(LoginActivity.this, index.class);
            startActivity(intent);
    
        }else {
            Intent intent = new Intent(LoginActivity.this, LoginActivity.class);
            startActivity(intent);
            Toast.makeText(getApplicationContext(), "登录失败!", Toast.LENGTH_LONG).show();
        }
    
    
    
    
    //        if (Integer.parseInt(object.toString()) != 0) {
    //
    //            SharedPreferences sharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE);
    //            //实例化SharedPreferences.Editor对象
    //            SharedPreferences.Editor editor = sharedPreferences.edit();
    //            //用putString的方法保存数据
    //            editor.putBoolean("USER_ISLOGIN",true);
    //            editor.putString("USER_ID", "123456");
    //            editor.putString("USER_PWD", "pwd123");
    //            //提交当前数据
    //            editor.apply();
    //
    //            Intent intent = new Intent(LoginActivity.this, index.class);
    //            startActivity(intent);
    ////                        Toast.makeText(getApplicationContext(), "登录成功!", Toast.LENGTH_LONG).show();
    //
    //        } else {
    //            Intent intent = new Intent(LoginActivity.this, LoginActivity.class);
    //            startActivity(intent);
    //            Toast.makeText(getApplicationContext(), "登录失败!", Toast.LENGTH_LONG).show();
    //        }
       }
    
    
    
        private boolean isEmailValid(String email) {
            //TODO: Replace this with your own logic
    //        return email.contains("@");
            return email.length() == 11;
        }
    
        private boolean isPasswordValid(String password) {
            //TODO: Replace this with your own logic
            return password.length() > 4;
        }
    
        /**
         * Shows the progress UI and hides the login form.
         */
        @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
        private void showProgress(final boolean show) {
            // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
            // for very easy animations. If available, use these APIs to fade-in
            // the progress spinner.
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
                int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
    
                mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
                mLoginFormView.animate().setDuration(shortAnimTime).alpha(
                        show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
                    }
                });
    
                mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
                mProgressView.animate().setDuration(shortAnimTime).alpha(
                        show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
                    }
                });
            } else {
                // The ViewPropertyAnimator APIs are not available, so simply show
                // and hide the relevant UI components.
                mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
                mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
            }
        }
    
    
    
        private void addEmailsToAutoComplete(List<String> emailAddressCollection) {
            //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list.
            ArrayAdapter<String> adapter =
                    new ArrayAdapter<>(LoginActivity.this,
                            android.R.layout.simple_dropdown_item_1line, emailAddressCollection);
    
            mEmailView.setAdapter(adapter);
        }
    
        private interface ProfileQuery {
            String[] PROJECTION = {
                    ContactsContract.CommonDataKinds.Email.ADDRESS,
                    ContactsContract.CommonDataKinds.Email.IS_PRIMARY,
            };
    
            int ADDRESS = 0;
            int IS_PRIMARY = 1;
        }
    
        /**
         * Use an AsyncTask to fetch the user's email addresses on a background thread, and update
         * the email text field with results on the main UI thread.
         */
        class SetupEmailAutoCompleteTask extends AsyncTask<Void, Void, List<String>> {
    
            @Override
            protected List<String> doInBackground(Void... voids) {
                ArrayList<String> emailAddressCollection = new ArrayList<>();
    
                // Get all emails from the user's contacts and copy them to a list.
                ContentResolver cr = getContentResolver();
                Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
                        null, null, null);
                while (emailCur.moveToNext()) {
                    String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract
                            .CommonDataKinds.Email.DATA));
                    emailAddressCollection.add(email);
                }
                emailCur.close();
    
                return emailAddressCollection;
            }
    
            @Override
            protected void onPostExecute(List<String> emailAddressCollection) {
                addEmailsToAutoComplete(emailAddressCollection);
            }
        }
    
        /**
         * Represents an asynchronous login/registration task used to authenticate
         * the user.
         */
        public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
    
            private final String mEmail;
            private final String mPassword;
    
            UserLoginTask(String email, String password) {
                mEmail = email;
                mPassword = password;
            }
    
            @Override
            protected Boolean doInBackground(Void... params) {
                // TODO: attempt authentication against a network service.
    
                try {
                    // Simulate network access.
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    return false;
                }
    
                for (String credential : DUMMY_CREDENTIALS) {
                    String[] pieces = credential.split(":");
                    if (pieces[0].equals(mEmail)) {
                        // Account exists, return true if the password matches.
                        return pieces[1].equals(mPassword);
                    }
                }
    
                // TODO: register the new account here.
                return true;
            }
    
            @Override
            protected void onPostExecute(final Boolean success) {
                mAuthTask = null;
                showProgress(false);
    
                if (success) {
                    finish();
                } else {
                    mPasswordView.setError(getString(R.string.error_incorrect_password));
                    mPasswordView.requestFocus();
                }
            }
    
            @Override
            protected void onCancelled() {
                mAuthTask = null;
                showProgress(false);
            }
        }
    }
    View Code

    http://www.cnblogs.com/51ss/articles/2424815.html
  • 相关阅读:
    Django_jinja2
    css画太极
    python 自己实现map
    python 比赛 组合问题
    python 找素数
    如何快速掌握一门新技术/语言/框架
    jQuery常用事件-思维导图
    jQuery常用函数-思维导图
    jQuery选择器汇总-思维导图
    3.git版本控制-管理修改、撤销、删除
  • 原文地址:https://www.cnblogs.com/huichao1314/p/6201743.html
Copyright © 2020-2023  润新知