error: método ejecutado en la clase AsyncTask <Params, Progress, Result> no se puede aplicar a tipos dados
Me quieren enviar texto e imagen de android a MySQL
través de php. Sin embargo, tengo error y no soy capaz de resolver. ¿Puede alguien ayudarme a resolver el problema? Muchas gracias
Añadir Función
- Cómo enviar múltiples valores a un servidor web a la vez
- ¿Qué longitud es iOS y Androids dispositivo token
- Sqlite Añadir columna en la tabla en una posición determinada (Android)
- ¿Es posible usar Couch DB o MySql o cualquier otro DB en Android?
- Cómo validar las credenciales de inicio de sesión de usuario en android con PHP, MySql con la ayuda de json
public void Add(final String claimType, final String Amount, final String Description, final Bitmap photo) { class AddImage extends AsyncTask<Void, Void, String> { ProgressDialog loading; @Override protected void onPreExecute() { super.onPreExecute(); loading = ProgressDialog.show(getApplicationContext(), "Please Wait",null, true, true); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); loading.dismiss(); Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); } @Override protected String doInBackground(Void... params) { HashMap<String, String> data = new HashMap<String,String>(); data.put(Configs.KEY_TYPE,claimType); data.put(Configs.KEY_AMOUNT,Amount); data.put(Configs.KEY_IMAGEDESCRIPTION,Description); String uploadImage=getStringImage(photo); data.put(Configs.KEY_IMAGE,uploadImage); data.put(Configs.KEY_TSID,IDFromInfo); RequestHandler rh=new RequestHandler(); String result = rh.sendPostRequest(Configs.ADD_WORKFORCE,data); return result; } } AddImage ru = new AddImage(); ru.execute(claimType, Amount, Description, photo); // error }
Error
Error:(185, 11) error: method execute in class AsyncTask<Params,Progress,Result> cannot be applied to given types; required: Void[] found: String,String,String,Bitmap reason: varargs mismatch; String cannot be converted to Void where Params,Progress,Result are type-variables: Params extends Object declared in class AsyncTask Progress extends Object declared in class AsyncTask Result extends Object declared in class AsyncTask
- Enviar datos de android a servidor a través de JSON
- Obtener datos de la base de datos en una estructura de árbol en sqlite
- ¿Qué es un buen enfoque de diseño de base de datos para mi aplicación Android Quiz?
- Android conectar mysql
- Android - La mejor manera de sincronizar SQLite con MySQL
- No se puede insertar correctamente caracteres griegos en la base de datos mysql
- Cómo registrar usuarios con la cuenta de Google en la aplicación Android
- ¿Cómo acceder a la base de datos mysql en android?
Prueba de esta manera,
public void Add(final String claimType, final String Amount, final String Description, final Bitmap photo) { new AddImage().execute(); } class AddImage extends AsyncTask<Void, Void, String> { ProgressDialog loading; @Override protected void onPreExecute() { super.onPreExecute(); loading = ProgressDialog.show(getApplicationContext(), "Please Wait",null, true, true); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); loading.dismiss(); Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); } @Override protected String doInBackground(Void... params) { HashMap<String, String> data = new HashMap<String,String>(); data.put(Configs.KEY_TYPE,claimType); data.put(Configs.KEY_AMOUNT,Amount); data.put(Configs.KEY_IMAGEDESCRIPTION,Description); String uploadImage=getStringImage(photo); data.put(Configs.KEY_IMAGE,uploadImage); data.put(Configs.KEY_TSID,IDFromInfo); RequestHandler rh=new RequestHandler(); String result = rh.sendPostRequest(Configs.ADD_WORKFORCE,data); return result; } }
Tu doInBackground espera que no pases param (Void … params) y pases 4 params (claimType, Amount, Description, photo)
Utilice AsyncTask
como este:
class AddImage extends AsyncTask<String, Void, String>
y en doInBackground (String … params) obtiene la cadena como:
@Override protected String doInBackground(String... params) { HashMap<String, String> data = new HashMap<String,String>(); data.put(Configs.KEY_TYPE,params[1]); data.put(Configs.KEY_AMOUNT,params[2]); data.put(Configs.KEY_IMAGEDESCRIPTION,params[3]); }
- El diseño de restricciones ignora las propiedades de los márgenes al especificarlas desde el inspector de propiedades
- Android: el paquete savedInstanceState es null en Fragment onCreate () y onCreateView ()