runOnUiThread(new Runnable() {
@Override
public void run() {
if(isok){
progressDialog.dismiss();
Intent NextP = new Intent(RegisterEasyActivity.this,ActivityOTP.class);
startActivity(NextP);
}
else{
progressDialog.dismiss();
switch (errorcode){
case 1:
progressDialog.dismiss();
Toast.makeText(RegisterEasyActivity.this, "Number already registered", Toast.LENGTH_SHORT).show();
break;
case 2:
progressDialog.dismiss();
Toast.makeText(RegisterEasyActivity.this, "Username already exist!", Toast.LENGTH_SHORT).show();
break;
default:
progressDialog.dismiss();
Toast.makeText(getBaseContext(), "Something wrong", Toast.LENGTH_SHORT).show();
}
}
}
});
这是我得到的错误:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:200)
at android.os.Handler.<init>(Handler.java:114)
at android.widget.Toast$TN$2.<init>(Toast.java:336)
at android.widget.Toast$TN.<init>(Toast.java:336)
at android.widget.Toast.<init>(Toast.java:103)
at android.widget.Toast.makeText(Toast.java:256)
at com.create.owner.mydemopro.Activity.RegisterEasyActivity$3$2.run(RegisterEasyActivity.java:231)
at java.lang.Thread.run(Thread.java:761)
我无法解决这个问题。
答案 0 :(得分:0)
您是从工作线程调用它。尝试此代码。
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
if(isok){
progressDialog.dismiss();
Intent NextP = new Intent(RegisterEasyActivity.this,ActivityOTP.class);
startActivity(NextP);
}
else{
progressDialog.dismiss();
switch (errorcode){
case 1:
progressDialog.dismiss();
Toast.makeText(RegisterEasyActivity.this, "Number already registered", Toast.LENGTH_SHORT).show();
break;
case 2:
progressDialog.dismiss();
Toast.makeText(RegisterEasyActivity.this, "Username already exist!", Toast.LENGTH_SHORT).show();
break;
default:
progressDialog.dismiss();
Toast.makeText(getBaseContext(), "Something wrong", Toast.LENGTH_SHORT).show();
}
}
}
}
});