На самом деле заголовок описывает мою проблему.
Я устанавливаю адаптер для переработки, но проблема все еще появляется. /> edit: < /strong>
больше нет ошибки (Thx rohit arya), но я все еще не вижу фото (есть пустая страница). < /p>
код: < /p>
класс Mainfragment: < /p>
< /p>
< /p>
package com.sarusi.amit.smarts;
import android.support.v4.app.Fragment;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* A simple {@link Fragment} subclass.
*/
public class MainFragment extends Fragment {
private RecyclerView recyclerView;
private RecyclerView.LayoutManager manager;
private RecyclerView.Adapter adapter;
private APIConfig apiConfig;
public MainFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
APIConfig.names = new String[1];
APIConfig.bitmaps = new Bitmap[1];
recyclerView = (RecyclerView) view.findViewById(R.id.fragment_main_recyclerView);
recyclerView.setHasFixedSize(true);
manager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(manager);
adapter = new BoardAdapter(APIConfig.names, APIConfig.bitmaps);
recyclerView.setAdapter(adapter);
getBoardsData();
return view;
}
private void getBoardsData() {
class ConnectionTask extends AsyncTask {
ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(getContext(), "Fetching Data...", "A Trap", false, false);
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
progressDialog.dismiss();
parseJSON(s);
showData();
adapter.notifyDataSetChanged();
}
@Override
protected String doInBackground(String... params) {
BufferedReader bufferedReader;
try {
URL url = new URL(apiConfig.IMAGES_URL);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json + "\n");
}
return sb.toString().trim();
} catch (Exception e) {
return null;
}
}
}
ConnectionTask connectionTask = new ConnectionTask();
connectionTask.execute();
}
public void showData () {
adapter = new BoardAdapter(APIConfig.names, APIConfig.bitmaps);
recyclerView.setAdapter(adapter);
}
private void parseJSON(String json) {
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = jsonObject.getJSONArray(apiConfig.TAG_JSON_ARRAY);
apiConfig = new APIConfig(jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject JSO = jsonArray.getJSONObject(i);
APIConfig.names = JSO.getString(apiConfig.TAG_NAME);
APIConfig.bitmaps = base64ToBitmap(JSO.getString(apiConfig.TAG_IMAGE));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private Bitmap base64ToBitmap(String b64) {
byte[] imageAsBytes = Base64.decode(b64.getBytes(), Base64.DEFAULT);
return BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
}
}
< /code>
Класс BoardAdapter: < /p>
package com.sarusi.amit.smarts;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by amit on 3/21/16.
*/
public class BoardAdapter extends RecyclerView.Adapter {
List boards;
public BoardAdapter(String[] names, Bitmap[] images) {
super();
boards = new ArrayList();
for (int i = 0; i < names.length; i++) {
Board board = new Board();
board.setImage(images);
board.setName(names);
boards.add(board);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.board_row, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Board board = boards.get(position);
holder.imageView.setImageBitmap(board.getImage());
holder.name.setText(board.getName());
}
@Override
public int getItemCount() {
return boards.size();
}
//The class for the viewHolder
class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public TextView name;
public ViewHolder(View itemView) {
super(itemView);
this.imageView = (ImageView) itemView.findViewById(R.id.board_row_image);
this.name = (TextView) itemView.findViewById(R.id.board_row_name);
}
}
}
< /code>
fragment_main: < /p>
< /code>
board_row: < /p>
Подробнее здесь: https://stackoverflow.com/questions/361 ... cyclerview
Адаптер не прикреплен; ПРОПУСТИТЕЛЬНА ⇐ Android
Форум для тех, кто программирует под Android
1750861913
Anonymous
На самом деле заголовок описывает мою проблему.
Я устанавливаю адаптер для переработки, но проблема все еще появляется. /> edit: < /strong>
больше нет ошибки (Thx rohit arya), но я все еще не вижу фото (есть пустая страница). < /p>
код: < /p>
класс Mainfragment: < /p>
< /p>
< /p>
package com.sarusi.amit.smarts;
import android.support.v4.app.Fragment;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* A simple {@link Fragment} subclass.
*/
public class MainFragment extends Fragment {
private RecyclerView recyclerView;
private RecyclerView.LayoutManager manager;
private RecyclerView.Adapter adapter;
private APIConfig apiConfig;
public MainFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
APIConfig.names = new String[1];
APIConfig.bitmaps = new Bitmap[1];
recyclerView = (RecyclerView) view.findViewById(R.id.fragment_main_recyclerView);
recyclerView.setHasFixedSize(true);
manager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(manager);
adapter = new BoardAdapter(APIConfig.names, APIConfig.bitmaps);
recyclerView.setAdapter(adapter);
getBoardsData();
return view;
}
private void getBoardsData() {
class ConnectionTask extends AsyncTask {
ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(getContext(), "Fetching Data...", "A Trap", false, false);
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
progressDialog.dismiss();
parseJSON(s);
showData();
adapter.notifyDataSetChanged();
}
@Override
protected String doInBackground(String... params) {
BufferedReader bufferedReader;
try {
URL url = new URL(apiConfig.IMAGES_URL);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json + "\n");
}
return sb.toString().trim();
} catch (Exception e) {
return null;
}
}
}
ConnectionTask connectionTask = new ConnectionTask();
connectionTask.execute();
}
public void showData () {
adapter = new BoardAdapter(APIConfig.names, APIConfig.bitmaps);
recyclerView.setAdapter(adapter);
}
private void parseJSON(String json) {
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = jsonObject.getJSONArray(apiConfig.TAG_JSON_ARRAY);
apiConfig = new APIConfig(jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject JSO = jsonArray.getJSONObject(i);
APIConfig.names[i] = JSO.getString(apiConfig.TAG_NAME);
APIConfig.bitmaps[i] = base64ToBitmap(JSO.getString(apiConfig.TAG_IMAGE));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private Bitmap base64ToBitmap(String b64) {
byte[] imageAsBytes = Base64.decode(b64.getBytes(), Base64.DEFAULT);
return BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
}
}
< /code>
Класс BoardAdapter: < /p>
package com.sarusi.amit.smarts;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by amit on 3/21/16.
*/
public class BoardAdapter extends RecyclerView.Adapter {
List boards;
public BoardAdapter(String[] names, Bitmap[] images) {
super();
boards = new ArrayList();
for (int i = 0; i < names.length; i++) {
Board board = new Board();
board.setImage(images[i]);
board.setName(names[i]);
boards.add(board);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.board_row, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Board board = boards.get(position);
holder.imageView.setImageBitmap(board.getImage());
holder.name.setText(board.getName());
}
@Override
public int getItemCount() {
return boards.size();
}
//The class for the viewHolder
class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public TextView name;
public ViewHolder(View itemView) {
super(itemView);
this.imageView = (ImageView) itemView.findViewById(R.id.board_row_image);
this.name = (TextView) itemView.findViewById(R.id.board_row_name);
}
}
}
< /code>
fragment_main: < /p>
< /code>
board_row: < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/36160058/no-adapter-attached-skipping-layout-with-recyclerview[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия