java - 添加(com.android.volley.Request) 在 RequestQueue 中不能应用于 (com.example.nikochan.instaticket.CearEventoRequest)
问题描述
此错误来自具有扩展类的主类,该类的目的是在 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 中的添加(com.android.volley.Request)不能应用于(com.example.nikochan.instaticket.CrearEventoRequest)”
如果有人知道问题出在哪里,请告诉我。
解决方案
queue.add()
方法需要一个类型为 的参数com.android.volley.Request
,但您传递了一个CrearEventoRequest
.
你可以尝试像这样进行演员阵容:
queue.add((Request)CrearEventoRequest);
如果仍然失败,您可以查看第三方库中是否有自定义请求类并使用它。
推荐阅读
- java - 在 Chrome 浏览器中接受/忽略 SSL 证书
- sql - 按某些列 SQL 旋转(转置)
- python - 将变量传递给Python中的另一个变量,tkinter
- continuous-integration - Gitlab根据合并请求触发作业手动并在部署管道中自动触发
- npm - 如何使用带有 Sass 和 RTL 支持的 Bootstrap?
- python - pathlib 绝对路径与配置解析器行为异常
- api - 如何将json-data放入flutter列表中?
- postgresql - 为什么主键上的“order by”会更改查询计划,从而忽略有用的索引?
- sonos - Sonos Control Api:获取sonos账户信息
- graphql - 数组查询中的GraphQL“全部”?