gpt4 book ai didi

android - 异步任务完成后如何更改 Activity ?

转载 作者:行者123 更新时间:2023-11-30 03:57:16 25 4
gpt4 key购买 nike

问题已解决,感谢帮助。

本质上,我有我的 onCreate() 类,它在按钮上设置 OnClick 监听器。单击它后,将创建并执行一个异步任务。

此异步任务从服务器获取响应,然后将信息发送到 onPostExecute()。

从这里开始,如果信息有效或无效,我想 toast 结果并相应地切换 Activity 。

截至目前,我已尝试从 onPostExecute() 执行此操作,但它不起作用。不知何故,我必须回到我的主线程并在那里做。我该怎么做呢?这是代码:

 public class Class1 extends Activity {

JSONObject jObj = null;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);

Button submit = (Button) findViewById(R.id.submitButton);
submit.setOnClickListener(new View.OnClickListener(){

public void onClick(View arg0){

(new CallAPI(restfulCall)).execute();
}
});
}

public class CallAPI extends AsyncTask<Void,Void,String>
{
private String restfulCall = "";

public CallAPI(String command)
{
restfulCall = command;
}

protected String doInBackground(Void... urls)
{
return API.getData(restfulCall);
}

protected void onPostExecute(String result) {
try {
jObj = new JSONObject(result);
} catch (JSONException e1) {
e1.printStackTrace();
}

try {
if(jObj.get("status").toString().equals("success"))
{
Toast.makeText(getBaseContext(),"Registration Succesful",Toast.LENGTH_LONG).show();
Intent intent = new Intent(Class1.this,Success.class);
Class1.this.startActivity(intent);

}
else
{
Toast.makeText(getBaseContext(),jObj.get("error").toString(),Toast.LENGTH_LONG).show();
Intent intent = new Intent(Class1.this,Error.class);
Class1.this.startActivity(intent);
}
} catch (JSONException e) {
e.printStackTrace();
}

}
}

最佳答案

使用 equals 来比较字符串而不是 == as :

if(jObj.get("status").toString().equals("success")

代替

if(jObj.get("status").toString() == "success")

关于android - 异步任务完成后如何更改 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13146075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com