我正在尝试从instagram api获取关于特定标记的json数据。从响应im将所有url保存到一个只有字符串url属性的自定义类映像。在instagram的每个回复中,它都有大约20个媒体文件,但我似乎无法构建我的图像列表来显示在我的回收器视图中
Response.enqueue(new Callback(){@override public void onResponse(Call Call,Response Response){if(Response.issucess()){
mEditText.setText("secces");
StringBuilder sb = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(response.body().byteStream()));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
JSONObject tagResponse = new JSONObject(sb.toString());
for (int i = 0; i < tagResponse.length(); i++) {
JSONObject pagination = tagResponse.getJSONObject("pagination");
mMaxId = pagination.getString("next_max_id");
mMinId= pagination.getString("next_min_id");
JSONObject meta = tagResponse.getJSONObject("meta");
JSONArray data = tagResponse.getJSONArray("data");
for (int j = 0; j < data.length(); j++) {
JSONArray tags = data.getJSONObject(j).getJSONArray("tags");
JSONObject images = data.getJSONObject(j).getJSONObject("images").getJSONObject("low_resolution");
mEditText.setText(images.getString("url"));
Picture picture = new Picture();
picture.setURL(images.getString("url"));
mAdapter.addImage(picture);
}
}
//displayResults(data);
} catch (Exception e) {
e.printStackTrace();
}
//Log.d(TAG, "CallonResponse isSuccess " + sb.toString() + " ----- ");
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
//Log.d(TAG, "CallonResponse onFailure! " + t.getMessage());
t.printStackTrace();
}
});
当我做以下几行的时候...
Picture picture = new Picture();
picture.setURL(images.getString("url"));
mAdapter.addImage(picture);
根据我的调试技巧,我可以得到images.getString(“URL”),我觉得图片的创建有一些问题,但这没有意义,因为所有的图片类都有一个属性,所以可能会有一个问题。下面是我的适配器的代码...
公共类ImageAdapter扩展RecyclerView.Adapter{
private List<Picture> mPictures;
public ImageAdapter(){
mPictures = new ArrayList<>();
}
@Override
public Holder onCreateViewHolder(ViewGroup viewGroup, int i) {
View row = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.sample_layout, viewGroup, false);
return new Holder(row);
}
@Override
public void onBindViewHolder(Holder holder, int i) {
Picture currPic = mPictures.get(i);
Picasso.with(holder.itemView.getContext()).load(currPic.getURL()).into(holder.mPhoto1);
}
@Override
public int getItemCount() {
return 600;
}
public void addImage(Picture picture) {
mPictures.add(picture);
}
public class Holder extends RecyclerView.ViewHolder{
private ImageView mPhoto1, mPhoto2;
public Holder(View itemView) {
super(itemView);
mPhoto1 = (ImageView)itemView.findViewById(R.id.image1);
//mPhoto2 = (ImageView)itemView.findViewById(R.id.image2);
}
}
}
private void configViews() {
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
//mLayoutManager = new StaggeredGridLayoutManager(VR_SPAN_COUNT, StaggeredGridLayoutManager.VERTICAL);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setRecycledViewPool(new RecyclerView.RecycledViewPool());
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false));
// mAdapter = new ImageAdapter();
// mRecyclerView.setAdapter(mAdapter);
}
问题是您使用空数组mpictures创建适配器。
您必须执行以下操作:
在您的活动/片段中,您必须创建图片列表,例如:
循环之后,必须创建适配器ImageAdapter mAdapter=new ImageAdapter(mPictures);
并将其设置为回收器视图-mrecycerview.setadapter(mAdapter);
。
您还必须像这样更改适配器结构:
public ImageAdapter(List<Picture> pictures){
mPictures = pictures;
}
适配器中的方法getItemCount()必须如下所示:
@Override
public int getItemCount() {
return mPictures.size();
}
我试图从我的sqlite数据库中获取一行。当我运行这行代码时:- 我得到以下错误:- android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。
我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误:
问题内容: 我收到一些奇怪的错误,这使我的Android应用程序崩溃了。它是一个测验应用程序。因此,当用户正确回答2/3问题时,单击下一步按钮将使其崩溃。并显示索引13错误。但我不知道在哪里修复/寻找。这是我的代码段。 日志猫的详细信息是这样的 更新 这是我的完整课程文件http://jquery404.com/file/GameScene.txt 问题答案: 在编程中,索引通常从0开始,因此,如
我正在尝试从数据库的某一行获取文本。为此,我做了这个函数 我这样称呼它: 我的桌子看起来像这样: 我得到这个错误: 为什么我会犯这个错误?我做错了什么? 提前感谢。
我有一个简单的回收器视图,我想在点击时删除这些项目。根据我单击列表中的某些项目时出现上述错误,我不断遇到崩溃。如果您有类似的问题,以下是我解决它的方法:
我正在制作一个应用程序,并使用SQLite来保存我的设置数据。但我一直得到这个错误:android.database.CursorIndexOutOfBoundsExcture:索引0请求,大小为0 我已尝试插入默认值,但仍出现此错误。也许我误解了什么。这是文件 这就是错误