错误: 找不到符号 符号: 变量 handler ,是哪里错了啊,小白求助~~!

songgtar 2019-03-13 01:00:09
package com.example.myapplication;

import android.content.Intent;
import android.os.Looper;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.lang.reflect.Method;

public class LoginActivity extends AppCompatActivity {
private EditText editTextUid;
private EditText editTextPwd;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
editTextUid = (EditText) findViewById(R.id.EditTextuid);
editTextPwd = (EditText) findViewById(R.id.EditTextPwd);
Button loginbutton = (Button) findViewById(R.id.loginBtn);
loginbutton.setOnClickListener(this.LoginInButtonlistener);
WorkThread wt = new WorkThread();
wt.start();
}

View.OnClickListener LoginInButtonlistener = new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = editTextUid.getText().toString();//获取页面密码
String sy = editTextPwd.getText().toString();//获取页面用户名
Message m = handler.obtainMessage();
Bundle b = new Bundle();
b.putString("pass", s);//以键值对形式放进 Bundle中
b.putString("name", sy);
m.setData(b);
handler.sendMessage(m);//把信息放到通道中
}
};


public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (menu != null) {
if (menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder")) {
try {
Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
method.setAccessible(true);
method.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super.onMenuOpened(featureId, menu);

}
class WorkThread extends Thread{
@Override
public void run(){
Looper.prepare();
handler=new Handler(){
@Override
public void handleMessage(Message m){
super.handleMessage(m);
Bundle b= m.getData();//得到与信息对用的Bundle
String name=b.getString("name");//根据键取值
String pass=b.getString("pass");
DBUtil db=new DBUtil(name,pass);//调用数据库查询类
String ret=db.QuerySQL();//得到返回值
if (ret.equals("1"))//为1,页面跳转,登陆成功
{
Intent localIntent = new Intent();
localIntent.setClass(LoginActivity.this,MainActivity.class);
LoginActivity.this.startActivity(localIntent);
Toast.makeText(LoginActivity.this, "登录成功",Toast.LENGTH_SHORT).show();//显示提示框
return;
}
Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();

}
};
Looper.loop();//Looper循环,通道中有数据执行,无数据堵塞
}
}

}



...全文
451 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2019-03-13
  • 打赏
  • 举报
回复
handler没定义,你在workthread new,在onclick方法里用,但并没有定义这个成员变量
songgtar 2019-03-13
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
handler没定义,你在workthread new,在onclick方法里用,但并没有定义这个成员变量

.........
private EditText editTextUid;
private EditText editTextPwd;
public Handler handler;
.........
谢谢,加了定义后可以用了,再问下,是加public好还是private好呢?

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧