- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码,我不知道为什么它现在不起作用 songs 是一个包含 getter setter 的简单 java 类
在从 JSON
获取数据之前,我尝试在 recycleView 中静态添加数据,并且效果非常好。
Here is code,
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_track, container, false);
myOnClickListener = new track.MyOnClickListener(getActivity());
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview1);
//recyclerView.setHasFixedSize(true);
layoutManager = new GridLayoutManager(getActivity(), 2);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
loadData();
return view;
}
code of JSON parsing using volley
private void loadData()
{
String url = "http://homejobs.live/mydata.php";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>(){
@Override
public void onResponse(String response) {
try{
JSONArray jsonArray = new JSONArray(response);
Log.d("test", String.valueOf(jsonArray));
Log.d("test", String.valueOf(jsonArray.length()));
for(int i =0 ; i < jsonArray.length() ; i++)
{
JSONObject jsonObject = jsonArray.getJSONObject(i);
songs item = new songs(
jsonObject.getString("id"),
jsonObject.getString("name"),
jsonObject.getString("uri")
);
Log.d("key", String.valueOf(item));
data.add(item);
}
adapter = new recycler_view_adapter(data);
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("error"+error);
}
}
);
mRequestQueue = Volley.newRequestQueue(getActivity().getApplicationContext());
mRequestQueue.add(stringRequest);
}
recycler_view_adapter class
public class recycler_view_adapter extends RecyclerView.Adapter<recycler_view_adapter.MyViewHolder> {
private ArrayList<songs> dataSet;
public static class MyViewHolder extends RecyclerView.ViewHolder {
public static TextView textViewName;
public static ImageView imageViewIcon;
public MyViewHolder(View itemView) {
super(itemView);
this.textViewName = (TextView) itemView.findViewById(R.id.textView);
this.imageViewIcon = (ImageView) itemView.findViewById(R.id.imageView3);
}
}
public recycler_view_adapter(ArrayList<songs> data) {
this.dataSet = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card, parent, false);
view.setOnClickListener(track.myOnClickListener);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
Log.d("hy","test");
songs songsData = dataSet.get(position);
MyViewHolder.textViewName.setText(songsData.getName());
System.out.println("hello"+position);
Picasso.get()
.load(songsData.getImage())
.into(MyViewHolder.imageViewIcon);
}
@Override
public int getItemCount()
{
return dataSet.size();
}
}
最佳答案
在您的 onBindViewHolder 中,更改以下代码
MyViewHolder.textViewName.setText(songsData.getName());
System.out.println("hello"+position);
Picasso.get()
.load(songsData.getImage())
.into(MyViewHolder.imageViewIcon);
以下内容
holder.textViewName.setText(songsData.getName());
System.out.println("hello"+position);
Picasso.get()
.load(songsData.getImage())
.into(holder.imageViewIcon);
在您的代码中,您尝试使用类名访问 TextView 。相反,您应该使用 holder
变量。
另请检查您是否正确解析了 json。检查是否
data.add(item);
在 api 响应中被执行。另一个建议是在适配器构造函数中检查数据集数组的大小。
关于java - RecycleView 调用 onBindViewHolder() 和 onCreateViewHolder(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57708707/
这个问题在这里已经有了答案: RecyclerView onCreateViewHolder Return Type Incompatibility With Multiple Custom Vie
我的 fragment public class PostFragment extends BaseFragment implements PostView { @Inject PostPresent
我正在关注 this tutorial ,据此,当我启动我的应用程序时,我应该能够看到已添加到 Firestore 的项目(文档)。但这正在发生 onCreateViewHolder仅当我点击 tex
我有一个 RecylerView 适配器,我在其中处理 onCreateViewHolder 方法中的 onClicks,但是我无法找到获取当前位置的方法。我当前的方法如下所示: @Overr
我在 NestedScrollView 中有一个 RecyclerView,它显示一些异步下载的数据。问题是在初始化项目时存在明显的滞后。经过一些测试后,我发现问题是每个项目都会调用 onCreate
我正在使用支持库 v7 将我的 ListView 转换为 RecyclerView。 我有 2 个不同的布局要加载到 RecyclerView 中。在 ListView 中,我在 getView()
我的RecyclerView没有调用onCreateViewHolder,所以onBindViewHolder在recyclerview中不会出现什么。我放了调试日志,没有显示日志。可以是什么? 我的
我有一个根 recyclerview,每个项目都填充了这个布局: 如您所见,每个项目中都有另一个recyclerview。我想用headers实现分段recycler
Recyclerview 不调用任何适配器方法:onBindViewHolder、onCreateViewHolder 因此适配器为空 这是我的代码: public class PostsFragme
我有 PagedListAdapater: class TrackedActivityAdapter constructor(diffUtilCallback: DiffUtil.ItemCallba
我尝试调试我的程序,发现执行没有在 FirebaseRecyclerAdapter recyclerAdapter=new FirebaseRecyclerAdapter( 选项)。我已经尝试了 st
我关注了this Google Developer 的 YouTube channel 的教程,用于实现 AdMob 原生快捷广告。 我收到以下错误: required: packagename.ad
我有一个 RecyclerView 可以将项目显示为列表、小网格或大网格,这可以在运行时更改。根据用户选择的样式,我在 onCreateViewHolder 中展开不同的布局。 我还使用 layout
我正在使用 RecyclerView.Adapter,但我对它的方法 onCreateViewHolder 的工作有点困惑。 @Override public RecyclerView.ViewH
到目前为止,我认为当我使用 adapter = new RecyclerViewAdapter(this, list) 调用适配器的构造函数时,调用了 RecyclerView.Adapter 中的
我的自定义适配器中的 onCreateViewHolder 函数出现了一个奇怪的异常。可能是因为 getItemViewType 函数按预期返回不同的值。 这是 getItemViewType 函数的
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 6 年前。 这应该是一个一如既往的简单工作。
短篇小说:我有一个(预缓存)自定义 LinearLayoutManager、RecyclerView、自定义 RecyclerView.Adaptor、自定义 RecyclerView.ViewHol
这是我的代码,我不知道为什么它现在不起作用 songs 是一个包含 getter setter 的简单 java 类 在从 JSON 获取数据之前,我尝试在 recycleView 中静态添加数据,并
我正在尝试制作 RecyclerView,但遇到了这个奇怪的错误。 消息如下: android.view.InflateException: Binary XML file line #0: Atte
我是一名优秀的程序员,十分优秀!