首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不能对(com.example.nikochan.instaticket.CrearEventoRequest)应用RequestQueue中的add(com.android.volley.Request<java.lang.Object>)

不能对(com.example.nikochan.instaticket.CrearEventoRequest)应用RequestQueue中的add(com.android.volley.Request<java.lang.Object>)
EN

Stack Overflow用户
提问于 2018-10-27 06:15:49
回答 1查看 64关注 0票数 0

此错误来自具有扩展类的主类,该类的用途是在Hostinger数据库中插入数据。下面是主类的代码:

代码语言:javascript
复制
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);

            }
        });


}
}

下面是扩展/连接类的代码:

代码语言:javascript
复制
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);“,”错误“消息是:”无法对(com.example.nikochan.instaticket.CrearEventoRequest)“应用RequestQueue中的add(CrearEventoRequest)

如果有人知道问题出在哪里,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2018-10-27 06:47:29

queue.add()方法需要类型为com.android.volley.Request的参数,但您传递的是CrearEventoRequest

您可以尝试进行强制造型,如下所示:

代码语言:javascript
复制
queue.add((Request)CrearEventoRequest);

如果仍然失败,您可以查看第三方库中是否有自定义请求类并使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53016914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档