android子线程与ui线程传值

小茶杯 2017-04-12 06:13:28
  开启子线程              
new Thread(new Runnable() {
@Override
public void run() {
waitHandler.sendEmptyMessage(0);
login(ed_username.getText().toString(), ed_pass.getText().toString(), regids);
}
}).start();
处理任务方法
private void login(String username, String pass, String regid){
HashMap<String,String> param=new HashMap<String, String>();
param.put("username",username);
param.put("pass",pass);
final DoHttp util=new DoHttp(LoginActivity.this);
util.GetResult(param,"/api/demo/Login");//接口返回数据
}
//接口的
@Override
public void showCallback(String result) {
Message msg=new Message();
msg.what=1;
msg.obj=result;
this.strresult = result;
handlerWeather.sendMessage(msg);//发送到UI线程
}
//Hander
Handler handlerWeather = new Handler() {
public void handleMessage(Message msg) {
Log.e("返回值=",strresult);
//通过打印- strresult值为 “yes”
if(strresult=="yes")
{
//这里为false
}
if(strresult.equals("yes"))
{
//这里为false
}
问题 为什么这里 通过比较都为 false?
测试了很多值 都是这样 求指导

}
}
...全文
285 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixuce1234 2017-04-13
  • 打赏
  • 举报
回复
Handler handlerWeather = new Handler() {
public void handleMessage(Message msg) {

 String result = (String) message.obj;
 Log.e("返回值=",result);
//通过打印-   strresult值为     “yes”   
if(result =="yes")
{
}
if(result .equals("yes"))
{

}

}
你这样试试看 有没有问题啊
ink_s 2017-04-13
  • 打赏
  • 举报
回复
没毛病 if(strresult.equals("yes")) { } 你吧打印出来的strresult 复制上去,注意空格大小写
zrf1335348191 2017-04-13
  • 打赏
  • 举报
回复
你想问什么呢
passself 2017-04-13
  • 打赏
  • 举报
回复
string 的字符串都trim() 一下吧,没看出来啥问题
幻影宇寰 2017-04-12
  • 打赏
  • 举报
回复
用equals比较字符串大小就行,具体可以打印下信息,看看前后是否有差距,比如多个空格什么的

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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