我坚持这个错误 .
java.lang.ClassCastException:java.lang.Object []无法强制转换为java.lang.String []
这是完整的代码 .
`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();
}
}
}`
1 回答
在
AsyncTask
和doInBackground
方法中将String[]
更改为String
,因为当前在dangnhap.execute
方法中传递字符串而不是String Array.like: