私はログインアクティビティを実装したいと思っています。 Webサービスとのユーザーの存在をチェックします。アンドロイドの結果を待つAsynTask
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クラスはseprateファイルにあります。 asyncTaskクラスのpostExecuteからアクティビティを開始する方法、またはedittextの値を変更する方法はありますか?出来ますか? –
UIを更新するには、WSクラスを新しいファイルで作成するのではなく、内部クラスにします。この方法で、フラグメントまたはAppCompatActivityを拡張する外部クラスのパブリック変数にアクセスできます。 –