I got stuck at this error.
java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[]
This is full code.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edTenDangNhap =(EditText) findViewById(R.id.edTenDangNhap);
edMatKhau =(EditText) findViewById(R.id.edMatKhau);
btnDangKi =(Button) findViewById(R.id.btnDangKi);
btnDangNhap =(Button) findViewById(R.id.btnDangNhap);
btnDangNhap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tentk = edTenDangNhap.getText().toString();
String matkhau = edMatKhau.getText().toString();
// ==== I execute AsyncTask there
AsyncTask dangnhap = new AsyncDangNhap();
dangnhap.execute(tentk,matkhau); // IDE announce there : JDK 5.0 only. Unchecked to call execute Params ...
}
});
}
public class AsyncDangNhap extends AsyncTask<String[], Void, Integer>{//error there
@Override
protected Integer doInBackground(String[]... params) {
WebService sv = new WebService();
int kiemtra = sv.KiemTraDangNhap(params[0],params[1]);
return kiemtra;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(getApplicationContext(),"Dang xu li ... !",Toast.LENGTH_LONG).show();
}
@Override
protected void onPostExecute(Integer result) {
super.onPostExecute(result);
if(result >0){
//Dang nhap thanh cong
Toast.makeText(getApplicationContext(),"Dang nhap thanh cong !",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(),"Dang nhap that bai !",Toast.LENGTH_LONG).show();
}
}
}`
Change String[] to String in AsyncTask and doInBackground method because currently passing Strings in dangnhap.execute method instead of String Array.like:
public class AsyncDangNhap extends AsyncTask<String, Void, Integer>{
@Override
protected Integer doInBackground(String... params) {
.....
}
....
}
As noted in the exception, you are trying to pass strings to the super class async task execute method of your async task object which takes a varag (variable length argument which is basically an array) of objects.
To fix this problem, simply replace the line
AsyncTask dangnhap = new AsyncDangNhap();
With
AsyncDangNhap dangnhap = new AsyncDangNhap();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With