线程中修改ui,解决线程修改UI时出错

checkuser线程获取web数据,判断用户名和密码是否正确,如果正确就关闭登录界面,否则提示用户名密码不正确
package com.example.emergencydoor;

import android.app.Activity;
import android.app.Application;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.common.AppData;
import com.common.Common;
import com.example.emergency.MainActivity;
import com.example.emergency.R;

import org.json.JSONArray;
import org.json.JSONObject;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class LoginActivity extends AppCompatActivity {
    private static final String TAG = "LoginActivity";
    private long clickTime = 0; //记录第一次点击的时间
    EditText etUserName,etPassword;
    Button btnLogin;
    private Handler uiHandler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login2);

        etUserName  = (EditText)findViewById(R.id.etUserName);
        etPassword  = (EditText)findViewById(R.id.etPassword);
        btnLogin    = (Button)findViewById(R.id.btnLogin2);
    }

    public void onClick(View view) {
        System.out.println("onClick按钮被点击*********************!");
        Intent intent = null;
        switch (view.getId()){
            case R.id.btnLogin2:
                if (etUserName.getText().length() > 1) {
                    CheckUserThread  checkUserThread = new CheckUserThread(); 
                    checkUserThread.start();
                }
                else
                {
                    Toast.makeText(getApplicationContext(), "请输入用户名",
                            Toast.LENGTH_SHORT).show();
                }
                break;
            default:
                break;
        }
    }

    class CheckUserThread  extends Thread{
        String data="";
        @Override
        public void run() {
            try{
                Thread.sleep(1);
                String URL = AppData.getCheckUserPasswordAddress(LoginActivity.this,etUserName.getText().toString(),etPassword.getText().toString());
                data = Common.getURLResponse(URL);

                Runnable runnable = new Runnable() {
                    @Override
                    public void run() {
                       System.out.println("Runnable thread id " + Thread.currentThread().getId());  
                        if ( data.trim().equals("0")){ 
                            AppData.setloginUser(LoginActivity.this, etUserName.getText().toString());
                            LoginActivity.this.finish(); 
                        }else { 
                              Toast.makeText(getApplicationContext(), "你输入的用户名或者密码不正确!",
                                     Toast.LENGTH_SHORT).show();
                        }
                    }
                };
                uiHandler.post(runnable);
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
    }
 


}

你可能感兴趣的:(Android)