【发布时间】:2017-06-09 12:03:16
【问题描述】:
我想实现一个登录活动。它通过网络服务检查用户是否存在。
EditText un=(EditText) findViewById(R.id.txtName);
EditText pass=(EditText) findViewById(R.id.txtPass);
WS ss=new WS();
String str=ss.execute("checkLogin",un.getText().toString(),pass.getText().toString()).get();
Intent in=new Intent(arg0.getContext(), Overview.class);
in.putExtra("username", str);
if(str=="No User")
Toast.makeText(getApplicationContext(), "ss", 300).show();
else
{
startActivity(in);
finish();
}
问题出在“IF”部分。完成代码行后设置“str”值。 但我想获得“str”值,然后检查 IF 以运行正确的操作。
【问题讨论】:
-
将该代码放在
AsyncTask类的onPostExecute方法中。 -
WS 类在一个单独的文件中。如何从 asyncTask 类的 postExecute 启动活动或更改编辑文本的值?有可能吗?
-
要更新 UI,请将您的 WS 类设为内部类,而不是在新文件中创建它。这样您就可以访问扩展片段或 AppCompatActivity 的外部类的公共变量。
-
我想检查信息是否真实,让用户查看概览活动...但我无法从该 asyncTask 开始新活动。
标签: android web-services android-asynctask