【问题标题】:Get all values from List<> instead of just 1 index and print this in RecyclerView从 List<> 获取所有值,而不仅仅是 1 个索引并在 RecyclerView 中打印
【发布时间】:2018-10-09 17:22:07
【问题描述】:

我有问题。我从我的 PHP 脚本下载 JSON:

[{
    "Nazwa": "Rower",
    "Cena": "300"
}, {
    "Nazwa": "Rower mtb",
    "Cena": "350"
}]

此脚本下载 JSON:

public class MainActivity extends AppCompatActivity
{

    public List<Post> postList;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void onClick(View view)
    {
        EditText editText = findViewById(R.id.editText);
        final String name = editText.getText().toString();

        RequestQueue requestQueue = Volley.newRequestQueue(this);

        String URL =         "https://shoppingcentreeshop.000webhostapp.com/androidAppScripts/szukajProduk    tu.php";
        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>()
    {
        @Override
        public void onResponse(String response)
        {
            Log.v(TAG, response);
            Gson gson = new Gson();

            Type type = new TypeToken<List<Post>>(){}.getType();
            postList = gson.fromJson(response, type);

            int size = postList.size();
            Log.v(TAG, "SIZE = "+size);

            RecyclerViewAdapter recyclerViewAdapter = new RecyclerViewAdapter(MainActivity.this, postList);
            RecyclerView recyclerView = findViewById(R.id.recyclerView);
            recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
            recyclerView.setAdapter(recyclerViewAdapter);

        }
    }, new Response.ErrorListener()
    {
        @Override
        public void onErrorResponse(VolleyError error)
        {
            Log.e(TAG, error.toString());
        }
    })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError
        {
                Map<String, String> params = new HashMap<String, String>    ();

            params.put("name_product", name);
            return params;
        }
        };

        requestQueue.add(stringRequest);
    }
}

我使用 GSON 将其解析为此类:

public class Post
{
    @SerializedName("Nazwa")
    @Expose
    private String nazwa;
    @SerializedName("Cena")
    @Expose
    private String cena;

    //getters and setters
}

我将 postList 添加到 RecyclerViewAdapter:

public class RecyclerViewAdapter extends     RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>
{
    List<Post> listPost;
    Context context;

public RecyclerViewAdapter(Context mContext, List<Post> list)
{
    context = mContext;
    listPost = list;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_item_layout, parent, false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position)
{
    final Post post = listPost.get(position);
    holder.title.setText(post.getCena());
    holder.price.setText(post.getCena());
}

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

public class ViewHolder extends RecyclerView.ViewHolder
{
    TextView title;
    TextView price;
    public ViewHolder(View itemView)
    {
        super(itemView);

        title = itemView.findViewById(R.id.titleNazwa);
        price = itemView.findViewById(R.id.price);
    }
}
}

为什么在我的回收站视图中我只有 postList 中第一个索引中的文本。

我知道,有很多代码,但我不知道代码哪里有问题。

我第一次使用 JSON 从服务器获取数据到 RecyclerView 所以请多多包涵

【问题讨论】:

  • Log.v 打印的尺寸是否正确?你能附上recycler_view_item_layout和activity_main吗?

标签: android json android-recyclerview


【解决方案1】:

我重新启动了 Android Studio,它正在工作! 不知道为什么!

【讨论】:

    猜你喜欢
    • 2013-02-15
    • 2016-11-04
    • 2013-06-02
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    相关资源
    最近更新 更多