Адаптер не прикреплен; ПРОПУСТИТЕЛЬНАAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Адаптер не прикреплен; ПРОПУСТИТЕЛЬНА

Сообщение 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 = 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»