此错误来自具有扩展类的主类,此类的目的是在Hostinger数据库中插入数据。 这是主类的代码:
package com.example.nikochan.instaticket;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
public class CrearEvento extends AppCompatActivity {
public CrearEvento(int post, String loginRequestUrl, Response.Listener<String> listener, Object o) {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crear_evento);
final EditText etNombreEv = findViewById(R.id.etNombreEv);
final EditText etFecha = findViewById(R.id.etFecha);
final EditText etDescrpcion = findViewById(R.id.etDescripcion);
final EditText etHora = findViewById(R.id.etHora);
final EditText etGenero = findViewById(R.id.etGenero);
final EditText etEdad = findViewById(R.id.etEdad);
final EditText etDuracion = findViewById(R.id.etDuracion);
final EditText etPrecio = findViewById(R.id.etPrecio);
final Button bPublicar = findViewById(R.id.bPublicar);
bPublicar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String nombreevento= etNombreEv.getText().toString();
final String fecha= etFecha.getText().toString();
final String descrpcion= etDescrpcion.getText().toString();
final String hora= etHora.getText().toString();
final String genero= etGenero.getText().toString();
final int edad= Integer.parseInt(etEdad.getText().toString());
final String duracion= etDuracion.getText().toString();
final int precio= Integer.parseInt(etPrecio.getText().toString());
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if (success){
Intent intent = new Intent(CrearEvento.this, Menu.class);
CrearEvento.this.startActivity(intent);
finish();
}else {
AlertDialog.Builder builder= new AlertDialog.Builder(CrearEvento.this);
builder.setMessage("La creacion ha fallado");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
CrearEventoRequest CrearEventoRequest = new CrearEventoRequest(nombreevento, fecha, descrpcion, hora, genero, edad, duracion, precio, responseListener);
RequestQueue queue = Volley.newRequestQueue(CrearEvento.this);
queue.add(CrearEventoRequest);
}
});
}
}
这是扩展/连接类的代码:
package com.example.nikochan.instaticket;
import com.android.volley.Request;
import com.android.volley.Response;
import java.util.HashMap;
import java.util.Map;
public class CrearEventoRequest extends CrearEvento {
private static final String LOGIN_REQUEST_URL = "http://instatickethome.xyz/Crea.php";
private Map<String,String> params;
public CrearEventoRequest (String nombreevento, String fecha, String descripcion, String hora, String genero, int edad, String duracion, int precio,
Response.Listener<String> listener){
super (Request.Method.POST,LOGIN_REQUEST_URL,listener,null);
params = new HashMap<>();
params.put("nombreevento",nombreevento);
params.put("fecha",fecha);
params.put("descrpcion",descripcion);
params.put("hora",hora);
params.put("genero",genero);
params.put("edad",edad + "");
params.put("duracion",duracion);
params.put("precio",precio + "");
}
}
错误来自“ queue.add(CrearEventoRequest);”并且“错误”消息是:“无法将RequestQueue中的add(com.android.volley.Request)应用于(com.example.nikochan.instaticket.CrearEventoRequest)”
如果有人知道问题出在哪里,请告诉我。
答案 0 :(得分:0)
queue.add()
方法需要一个类型为com.android.volley.Request
的参数,但是您传递了一个CrearEventoRequest
。
您可以尝试像以下那样进行投射:
queue.add((Request)CrearEventoRequest);
如果仍然失败,则可以查看第三方库中是否有一个自定义请求类并使用它。