- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经从 android 中的 mysql 检索数据并将其呈现在回收 View 中。现在我想添加 onclick 监听器以检索信息。代码可在此处获得 https://www.simplifiedcoding.net/retrieve-data-mysql-database-android/
现在我想将 onclick 监听器添加到检索到的信息中。我使用 volley。
public class Product {
private int id;
private String title;
private String shortdesc;
private double rating;
private double price;
private String image;
public Product(int id, String title, String shortdesc, double rating, double price, String image) {
this.id = id;
this.title = title;
this.shortdesc = shortdesc;
this.rating = rating;
this.price = price;
this.image = image;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public String getShortdesc() {
return shortdesc;
}
public double getRating() {
return rating;
}
public double getPrice() {
return price;
}
public String getImage() {
return image;
}
}
产品适配器
public class ProductsAdapter extends
RecyclerView.Adapter<ProductsAdapter.ProductViewHolder> {
private Context mCtx;
private List<Product> productList;
public ProductsAdapter(Context mCtx, List<Product> productList) {
this.mCtx = mCtx;
this.productList = productList;
}
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(mCtx);
View view = inflater.inflate(R.layout.product_list, null);
return new ProductViewHolder(view);
}
@Override
public void onBindViewHolder(ProductViewHolder holder, int position) {
Product product = productList.get(position);
//loading the image
Glide.with(mCtx)
.load(product.getImage())
.into(holder.imageView);
holder.textViewTitle.setText(product.getTitle());
holder.textViewShortDesc.setText(product.getShortdesc());
holder.textViewRating.setText(String.valueOf(product.getRating()));
holder.textViewPrice.setText(String.valueOf(product.getPrice()));
}
@Override
public int getItemCount() {
return productList.size();
}
class ProductViewHolder extends RecyclerView.ViewHolder {
TextView textViewTitle, textViewShortDesc, textViewRating, textViewPrice;
ImageView imageView;
public ProductViewHolder(View itemView) {
super(itemView);
textViewTitle = itemView.findViewById(R.id.textViewTitle);
textViewShortDesc = itemView.findViewById(R.id.textViewShortDesc);
textViewRating = itemView.findViewById(R.id.textViewRating);
textViewPrice = itemView.findViewById(R.id.textViewPrice);
imageView = itemView.findViewById(R.id.imageView);
}
}
}
主要 Activity
public class MainActivity extends AppCompatActivity {
//this is the JSON Data URL
//make sure you are using the correct ip else it will not work
private static final String URL_PRODUCTS = "http://192.168.101.1/MyApi/Api.php";
//a list to store all the products
List<Product> productList;
//the recyclerview
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//getting the recyclerview from xml
recyclerView = findViewById(R.id.recylcerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//initializing the productlist
productList = new ArrayList<>();
//this method will fetch and parse json
//to display it in recyclerview
loadProducts();
}
private void loadProducts() {
/*
* Creating a String Request
* The request type is GET defined by first parameter
* The URL is defined in the second parameter
* Then we have a Response Listener and a Error Listener
* In response listener we will get the JSON response as a String
* */
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_PRODUCTS,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
//converting the string to json array object
JSONArray array = new JSONArray(response);
//traversing through all the object
for (int i = 0; i < array.length(); i++) {
//getting product object from json array
JSONObject product = array.getJSONObject(i);
//adding the product to product list
productList.add(new Product(
product.getInt("id"),
product.getString("title"),
product.getString("shortdesc"),
product.getDouble("rating"),
product.getDouble("price"),
product.getString("image")
));
}
//creating adapter object and setting it to recyclerview
ProductsAdapter adapter = new ProductsAdapter(MainActivity.this, productList);
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
//adding our stringrequest to queue
Volley.newRequestQueue(this).add(stringRequest);
}
}
JSON
[{"id":1,"title":"abc","shortdesc":"dis","rating":1,"price":1,"image":"aa"},
{"id":2,"title":"def","shortdesc":"abc","rating":3,"price":1000,"image":"abc"}]
最佳答案
只需用这个替换你的 ProductViewHolder
类......它工作正常
class ProductViewHolder extends RecyclerView.ViewHolder {
TextView textViewTitle, textViewShortDesc, textViewRating, textViewPrice;
ImageView imageView;
public ProductViewHolder(View itemView) {
super(itemView);
textViewTitle = itemView.findViewById(R.id.textViewTitle);
textViewShortDesc = itemView.findViewById(R.id.textViewShortDesc);
textViewRating = itemView.findViewById(R.id.textViewRating);
textViewPrice = itemView.findViewById(R.id.textViewPrice);
imageView = itemView.findViewById(R.id.imageView);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mCtx, YourActivity.class);
mCtx.startActivity(intent);
}
});
}
}
关于php - android 从 mysql 中检索数据并将其呈现在 recycleview 中并添加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49422434/
我已将 RecycleView 添加到我的 XML 中,如下所示: 我在 build.gradle 中的依赖项定义如下: dependencies { implementation
我正在尝试做一件简单的事情,它将所有图像从外部存储中获取到回收 View 并显示它们。 我的问题是,出于某种原因,我收到了 null,但我不知道为什么。我成功地将所有图像放入字符串数组列表中。然后在
我正在使用 this处理我的图书馆 RecycleView添加项目。我有一个 ImageView 的布局和一个类(class)。我有一个对象列表,我想将它们添加到 RecycleView . 基本上是
我正在尝试为我的应用实现搜索过滤器,但我不知道该怎么做。我看到了一个问题 this one here但这只会让我更加困惑。这就是我到目前为止所做的:我在我的主要 Activity 中这样调用 frag
我有这样的布局 我希望 admob View 占用空间,然后所有剩余的 View 都应由 recycleview 占用。发生的事情是
我正在从 Recyclerview 获取数据 我正在我的应用程序中添加 searchview 过滤器,但是当我搜索大写和小写文本时没有找到结果我认为可能会导致字符串出现问题,请帮助我解决这个问题!!
我已经为 RecycleViews 构建了一个自定义渲染器。 我一直遇到一个问题,我想不出可能的解决办法,就在这里。 每当用户滚动 RecycleView 时,屏幕上显示的下一个项目就会乱序显示,就好
我正在尝试创建一个简单的考勤应用程序。 程序启动时,所有标签都在取消选择列表中 预期行为:选择任何标签时,数据将移动到所选列表,现在所选标签位于连接列表的末尾。然后 RecycleView 刷新以显示
我通过 Web 服务从服务器获取数据并在回收 View 中显示。每个请求我从服务器获取 5 个项目。我调试我的代码并检查当我滚动到 recycleview 的末尾时,新数据正在从服务器获取,但它没有添
更新: 实际问题出在 CoordinatorLayout 而不是 RecycleView。 我没有使用 RecycleView,而是在 ScrollView 中尝试了 TextView,这是同样的问题
我有一个带有 CardView 的 Recycleview,我为此实现了一个滑动 handle 选项。当用户向右滑动卡片时需要删除。问题是 Action 非常敏感——当你点击或稍微拖动卡片时,它就会执
我在 LinearLayout 中创建了一个 RecycleView 组件以及其他一些组件。问题是每当我单击 RecycleView 组件中的元素时,它应该在控制台中创建一个 TAG,但事实并非如此。
我正在尝试实现类似于上图的布局将 RecyclerView 与 GridLayoutManager 结合使用,我尝试根据位置设置 setSpanSizeLookup,但无法模仿上面的设计。 有人可以帮
问题来了:我创建了世界上最简单的 RecyclerView,但它只显示第一项。我不明白为什么。感谢您的帮助。 item_layout.xml activity_main.xml
这是我的回收 View 适配器 CategoryAdapter类 public class CategoryRAdapter extends RecyclerView.Adapter { privat
摘要 我在 RecycleView 中有一个 CardView,带有一个播放或停止歌曲的按钮,并且一次只能播放一首歌曲。因此,当我单击其中一个按钮时,所有其他按钮都应该有一个“播放”图标,而单击的按钮
我正在创建一个应用程序,我想在其中使用改造调用 API。并在回收查看器中显示对象。当我尝试使用调用 API 并将对象放入回收查看器的方法时出现错误。 下面是寻呼机适配器的代码。 public clas
我有一个使用 ViewPager 的三选项卡界面设置。在第三个选项卡中,我有一个 CardView,它可以展开/缩回 onclick 以显示更多信息。 CardView 内部是一个 RecyclerV
我正在尝试突出显示一个列表,例如当用户单击一行时,它的背景颜色会发生变化。该应用程序运行良好,但是当我上下滚动列表时,突出显示一行时,其他行也会突然突出显示。以下是显示此行为的测试应用(代码基于 ht
我使用水平 RecyclerView,我的列表项之间的边距是恒定的,我想增加列表项间距,我尝试增加 layout_margin 但没有变化. 下面是我的列表项布局
我是一名优秀的程序员,十分优秀!