经过跟朱同学的讨论,发现Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。也就是说在handler没有取得数据之前点击事件就已经执行跳转,而跳转返回之后该部分已经执行获取到了数据。简单了解了机制,开始处理他这个两步的过程,先获取数据再进行跳转。最后使用触摸OnTouch事件来解决
bss.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
ssinfo=ess.getText().toString();//只有在点击事件中才能获取用户输入的值
if(event.getAction() == MotionEvent.ACTION_DOWN){
String url = "http://10.0.2.2:8080/Marketserver/MarketUserServlet?method=selectString&ssinfo="+ssinfo;
ConByHttp c=new ConByHttp(url,handler);
c.start();
Log.d("test", "11111"+ssinfo);
// mButton.setBackgroundResource(R.drawable.green);
}
if(event.getAction() == MotionEvent.ACTION_UP){
Intent intent = new Intent(getActivity(), showss.class);
Bundle bundle = new Bundle();
Log.d("test", result);
bundle.putString("ssinfo", result);
intent.putExtras(bundle);
startActivity(intent);
}
return false;
}
});
至此成功获得服务器给的数据进行调用。