Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅显示一项而不是三项的回收器视图_Android - Fatal编程技术网

Android 仅显示一项而不是三项的回收器视图

Android 仅显示一项而不是三项的回收器视图,android,Android,我需要一些帮助,我正在用php和android开发一个应用程序。我正在使用“回收者”视图,但我遇到了问题,因为我的列表有3个项目,并且只显示一个,你能帮我吗?我将添加适配器和主适配器 AdapterLocalPersonalizado public class AdapterLocalPersonalizado extends RecyclerView.Adapter<AdapterLocalPersonalizado.MeuViewHolder> { Context ct

我需要一些帮助,我正在用php和android开发一个应用程序。我正在使用“回收者”视图,但我遇到了问题,因为我的列表有3个项目,并且只显示一个,你能帮我吗?我将添加适配器和主适配器

AdapterLocalPersonalizado

public class AdapterLocalPersonalizado extends RecyclerView.Adapter<AdapterLocalPersonalizado.MeuViewHolder> {

    Context ctx;
    List<Local> listaLocal;

    connection con = new connection();

    public AdapterLocalPersonalizado(List<Local> locais,Context ctx1) {
        this.ctx = ctx1;
        this.listaLocal = locais;
    }

    public class MeuViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        TextView nome,categoria,endereco,valor;
        @SuppressLint("WrongViewCast")
        public MeuViewHolder(@NonNull View view) {
            super(view);

            nome = (TextView) view.findViewById(R.id.namec);
            categoria = (TextView) view.findViewById(R.id.categoria);
            valor = (TextView) view.findViewById(R.id.valor);
            endereco = (TextView) view.findViewById(R.id.ende);

            view.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            int position = getAdapterPosition();

            Local objSelecionado = listaLocal.get(position);

            if(position != RecyclerView.NO_POSITION){


                Intent intent = new Intent(ctx.getApplicationContext(), tela_lista_local.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                Bundle bundle = new Bundle();
                bundle.putInt("ID",objSelecionado.getId());

                ctx.startActivity(intent);
            }
        }
    }

    @NonNull
    @Override
    public MeuViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        Local local = listaLocal.get(i);
        
        Context context = viewGroup.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);

        View linhaView = inflater.inflate(R.layout.activity_tela_lista_local_personalizada, viewGroup, false);

        MeuViewHolder viewHolder = new MeuViewHolder(linhaView);
        

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull AdapterLocalPersonalizado.MeuViewHolder meuViewHolder, int i) {
        Local local = listaLocal.get(i);
            TextView nome = meuViewHolder.nome;
       nome.setText(local.getNome());
        }

    

    @Override
    public int getItemCount() {
        return listaLocal.size();
    }

}
公共类适配器LocalPersonalizado扩展了RecyclerView.Adapter{
上下文ctx;
列表法;
连接con=新连接();
公共适配器LocalPersonalizado(列出位置,上下文ctx1){
这个.ctx=ctx1;
this.listaLocal=locais;
}
公共类MeuViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
TextView nome、categoria、endereco、valor;
@SuppressLint(“错误视图投射”)
公共MeuViewHolder(@NonNull视图){
超级(视图);
nome=(TextView)view.findViewById(R.id.namec);
categoria=(TextView)view.findViewById(R.id.categoria);
valor=(TextView)view.findViewById(R.id.valor);
endereco=(TextView)view.findViewById(R.id.ende);
view.setOnClickListener(这个);
}
@凌驾
公共void onClick(视图v){
int position=getAdapterPosition();
Local objSelecionado=listaLocal.get(位置);
如果(位置!=RecyclerView.无位置){
Intent Intent=新Intent(ctx.getApplicationContext(),tela\u lista\u local.class);
intent.setFlags(intent.FLAG\u活动\u新任务);
Bundle=新Bundle();
bundle.putInt(“ID”,objSelecionado.getId());
星触觉(意图);
}
}
}
@非空
@凌驾
public MeuViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
Local Local=listaLocal.get(i);
Context=viewGroup.getContext();
LayoutFlater充气机=LayoutFlater.from(上下文);
View linhaView=充气机。充气(R.layout.activity\u tela\u lista\u local\u personalizada,viewGroup,false);
Meuviewolder viewHolder=新的Meuviewolder(linhaView);
返回视图持有者;
}
@凌驾
BindViewHolder上的公共无效(@NonNull AdapterLocalPersonalizado.MeuViewHolder MeuViewHolder,int i){
Local Local=listaLocal.get(i);
TextView nome=meuViewHolder.nome;
nome.setText(local.getNome());
}
@凌驾
public int getItemCount(){
返回listaLocal.size();
}
}
tela_lista_本地(主要)

公共类tela_lista_local活动{
AdapterLocalPersonalizado AdapterLocalPersonalizado;
列出本地列表;
本地的;
字符串endereco、categoria、token;
连接con=新连接();
ListarLocalAsyncTask listarLocaisAsyncTask;
回收视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u tela\u lista\u local);
token=“tcc”;
Intent it=getIntent();
categoria=it.getStringExtra(“categoria”);
endereco=it.getStringExtra(“endereco”);
listView=findViewById(R.id.RecycleServiceWebLocal);
listarLocaisAsyncTask=新建ListarLocalAsyncTask();
listarLocaisAsyncTask.execute();
}
公共类ListarLocalAsyncTask扩展异步任务{
字符串api_令牌,查询;
httpurl连接连接;
URL=null;
Uri.Builder;
最终字符串URL\u WEB\u服务=”http://192.168.0.110/Controller/APIListarLocal.php";
最终整型读取\u超时=10000;//MILISSEGUNDOS
最终int连接超时=30000;
int-response_码;
公共列表arlocalasynctask(){
this.builder=新Uri.builder();
建造商。附录参数(“api_categoria”,categoria);
}
@凌驾
受保护的void onPreExecute(){
Log.i(“APIListar”、“onPreExecute()”);
}
@凌驾
受保护的字符串背景(字符串…字符串){
Log.i(“APIListar”、“doInBackground()”);
//Gerar o conteúdo para URL
试一试{
url=新url(url\u WEB\u服务);
}捕获(格式错误){
Log.i(“APIListar”、“MalformedURLException-->”+e.getMessage());
}捕获(例外e){
Log.i(“APIListar”、“doInBackground()-->”+e.getMessage());
}
//Gerar uma Requissiço HTTP-POST-Result seráum ArrayJson
//康涅狄格州
试一试{
conn=(HttpURLConnection)url.openConnection();
conn.setReadTimeout(读取超时);
连接设置连接超时(连接超时);
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“字符集”、“utf-8”);
conn.setDoInput(真);
连接设置输出(真);
连接();
}捕获(例外e){
Log.i(“APIListar”、“HttpURLConnection-->”+e.getMessage());
}
//AcimoNo.O令牌E/ouououts
//这个目标包括,你可以选择。
//复杂积垢
试一试{
query=builder.build().getEncodedQuery();
OutputStream=conn.getOutputStream();
BufferedWriter=新的BufferedWriter(
新的OutputStreamWriter(流,“utf-8”);
writer.write(查询);
writer.flush();
writer.close();
stream.close();
连接();
}捕获(例外e){
Log.i(“APIListar”、“BufferedWriter-->”+e.getMessage());
}
//接收器o响应-
public class tela_lista_local extends AppCompatActivity {


    AdapterLocalPersonalizado adapterLocalPersonalizado;
    List<Local> localList;
    Local local;
    String endereco,categoria,token;


    connection con = new connection();
    ListarLocalAsyncTask listarLocaisAsyncTask;
    RecyclerView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tela_lista_local);
        token = "tcc";
        Intent it = getIntent();
         categoria = it.getStringExtra("categoria");
         endereco = it.getStringExtra("endereco");
        listView = findViewById(R.id.recyclerViewLocal);

        listarLocaisAsyncTask = new ListarLocalAsyncTask();
        listarLocaisAsyncTask.execute();

    }



    public class ListarLocalAsyncTask extends AsyncTask<String, String, String> {

        String api_token, query;

        HttpURLConnection conn;
        URL url = null;
        Uri.Builder builder;

        final String URL_WEB_SERVICES = "http://192.168.0.110/Controller/APIListarLocal.php";

        final int READ_TIMEOUT = 10000; // MILISSEGUNDOS
        final int CONNECTION_TIMEOUT = 30000;

        int response_code;


        public ListarLocalAsyncTask( ){


            this.builder = new Uri.Builder();
            builder.appendQueryParameter("api_categoria", categoria);

        }

        @Override
        protected void onPreExecute() {

            Log.i("APIListar", "onPreExecute()");

        }

        @Override
        protected String doInBackground(String... strings) {

            Log.i("APIListar", "doInBackground()");

            // Gerar o conteúdo para a URL

            try {

                url = new URL(URL_WEB_SERVICES);

            } catch (MalformedURLException e) {

                Log.i("APIListar", "MalformedURLException --> " + e.getMessage());

            } catch (Exception e) {

                Log.i("APIListar", "doInBackground() --> " + e.getMessage());
            }

            // Gerar uma requisição HTTP - POST - Result será um ArrayJson

            // conn

            try {

                conn = (HttpURLConnection) url.openConnection();
                conn.setReadTimeout(READ_TIMEOUT);
                conn.setConnectTimeout(CONNECTION_TIMEOUT);
                conn.setRequestMethod("POST");
                conn.setRequestProperty("charset", "utf-8");

                conn.setDoInput(true);
                conn.setDoOutput(true);

                conn.connect();

            } catch (Exception e) {

                Log.i("APIListar", "HttpURLConnection --> " + e.getMessage());

            }

            // Adicionar o TOKEN e/ou outros parâmetros como por exemplo
            // um objeto a ser incluido, deletado ou alterado.
            // CRUD completo

            try {

                query = builder.build().getEncodedQuery();

                OutputStream stream = conn.getOutputStream();

                BufferedWriter writer = new BufferedWriter(
                        new OutputStreamWriter(stream, "utf-8"));

                writer.write(query);
                writer.flush();
                writer.close();
                stream.close();

                conn.connect();


            } catch (Exception e) {

                Log.i("APIListar", "BufferedWriter --> " + e.getMessage());


            }

            // receber o response - arrayJson
            // http - código do response | 200 | 404 | 503

            try {

                response_code = conn.getResponseCode();

                if (response_code == HttpURLConnection.HTTP_OK) {


                    InputStream input = conn.getInputStream();
                    BufferedReader reader = new BufferedReader(

                            new InputStreamReader(input)

                    );

                    StringBuilder result = new StringBuilder();

                    String linha = null;

                    while ((linha = reader.readLine()) != null) {

                        result.append(linha);
                    }

                    return result.toString();

                } else {

                    return "HTTP ERRO: " + response_code;
                }


            } catch (Exception e) {

                Log.i("APIListar", "StringBuilder --> " + e.getMessage());

                return "Exception Erro: " + e.getMessage();

            } finally {

                conn.disconnect();
            }


        }

        @Override
        protected void onPostExecute(String result) {

            Log.i("APIListar", "onPostExecute()--> Result: " + result);

            try {

                Local local;

                JSONArray jsonArray = new JSONArray(result);

                localList = new ArrayList<>();

                if (jsonArray.length() != 0) {

                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jsonObject = jsonArray.getJSONObject(i);

                        local = new Local(jsonObject.getInt("id"),
                                jsonObject.getString("nome"),
                                jsonObject.getString("endereco"),
                                jsonObject.getString("categoria"),
                                jsonObject.getString("valor"));

                        localList.add(local);

                        Log.i("APIListar", "Estado: -> " + local.getId() + " - " +local.getNome());


                    }

                    Toast.makeText(tela_lista_local.this, localList.size() + " local Listados no LogCat", Toast.LENGTH_LONG)
                            .show();

                    initial();

                }

            } catch (Exception e) {


                Log.i("APIListar", "onPostExecute()--> " + e.getMessage());


            }


        }

        public void initial(){
            adapterLocalPersonalizado = new AdapterLocalPersonalizado(localList, getApplicationContext());
            listView.setAdapter(adapterLocalPersonalizado);
            listView.setLayoutManager(new LinearLayoutManager(tela_lista_local.this));
        }
    }
}