首页 文章

[Android]对象无法强制转换为java.lang.String Asynctask

提问于
浏览
3

我坚持这个错误 .

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 回答

  • 1

    AsyncTaskdoInBackground 方法中将 String[] 更改为 String ,因为当前在 dangnhap.execute 方法中传递字符串而不是String Array.like:

    public class AsyncDangNhap extends AsyncTask<String, Void, Integer>{ 
        @Override
        protected Integer doInBackground(String... params) {
             .....
        }
    
      ....
    }
    

相关问题