Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Плагин для Unity http://www.cyberforum.ru/android-dev/thread1970317.html
Доброго времени суток Возникла проблема при подключении плагина под андроид который должен показывать рекламу. Ниже код на Java из плагина -> public static void ShowBanner(){...
Программирование Android TableLayout добавить строки в другие столбцы Добрый день. Есть такой код. Но TextView добавляются снизу. Как сделать чтобы добавлялись сбоку? Нужно чтобы было 3 столбика. TableLayout TabLay = (TableLayout)... http://www.cyberforum.ru/android-dev/thread1970183.html
SimpleCursorAdapter не хочет работать Программирование Android
Добрый день. Вобщем такая ситация. Нажимаю на MainActivity кнопку и по интенту грузится вторая актвити ее код: public class HistoryActivity extends Activity { ListView listView; Cursor...
Notification Уведомления в Android Программирование Android
Попробую изложить корректно, но готовьтесь к ужасу.. Заранее извините(( На просторах интернета нашел способ сделать уведомление в приложении через Service. С этим проблем нет. Проблема...
Программирование Android Пустая Basic Activity http://www.cyberforum.ru/android-dev/thread1969814.html
Android studio 2.3.1. При добавлении новой активити в визарде, после выбора Basic Activity генерируются файлы без разметки. При этом другие шаблоны генерируются нормально. Как это исправить, господа?...
Программирование Android Ошибка NetworkOnMainThreadException Всем привет, делаю приложку по примерам. В качестве БД используется MySQL. Никак не пойму в чем ошибка. Скорее всего в JSONParser, так как исходного JSONParser у меня нет. Приложение просто... подробнее
kair32
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 37
28.04.2017, 15:05  [ТС] 0

RecyclerView Adapter

28.04.2017, 15:05. Просмотров 1217. Ответов 12
Метки (Все метки)

Ответ

да тут особо смотреть нечего..
но вот.
сразу весь адаптер
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package adapters;
 
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
 
import com.example.kirill.vkmessager.R;
import com.squareup.picasso.Picasso;
import com.vk.sdk.api.VKApiConst;
import com.vk.sdk.api.VKParameters;
import com.vk.sdk.api.VKRequest;
import com.vk.sdk.api.VKResponse;
 
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import utilis.Constants;
 
/**
 * Created by Kirill on 06.02.2017.
 */
 
public class UserDialogRecyclerAdapter extends RecyclerView.Adapter<UserDialogRecyclerAdapter.ViewHolder> {
    private int count;
    private JSONArray messJson;
    private Context mContext;
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView vBodyMSG;
        public ImageView vBodyImageView;
        public LinearLayout vLinerLayout;
        public ViewHolder(View v) {
            super(v);
            vBodyMSG = (TextView) v.findViewById(R.id.user_dialog_textView);
            vBodyImageView = (ImageView) v.findViewById(R.id.user_dialog_ImageView);
            vLinerLayout = (LinearLayout)v.findViewById(R.id.user_dialog_LinerLayout);
        }
    }
    public UserDialogRecyclerAdapter(Context context, JSONArray istemsJson) {
        messJson = istemsJson;
        mContext = context;
        count = messJson.length();
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_dialog_user, parent, false);
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }
    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        try {
            JSONObject postJson = messJson.getJSONObject(position);
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            if(postJson.getString("out").equals("1")){
                lp.gravity = Gravity.RIGHT;}
            else {lp.gravity = Gravity.LEFT;}
            holder.vLinerLayout.setLayoutParams(lp);
            //holder.vBodyMSG.setLayoutParams(lp);
            holder.vBodyMSG.setText(postJson.getString("body"));
            try {
                JSONArray fwd_msg = postJson.getJSONArray("fwd_messages");
                JSONObject fwd_mesage = fwd_msg.getJSONObject(0);
                holder.vBodyMSG.setText(holder.vBodyMSG.getText() + "\n\r" + fwd_mesage.getString("body"));
            }catch (JSONException s){}
            try {
                JSONArray photoArray = postJson.getJSONArray("attachments");
                JSONObject photoArray2 = photoArray.getJSONObject(0);
                try {
                    JSONObject photoArray3 = photoArray2.getJSONObject("photo");
                    holder.vBodyImageView.setVisibility(View.VISIBLE);
                    String photo = null;
                    try {
                        photo = photoArray3.getString("photo_1280");
                    }catch (JSONException a) {
                        try {
                            photo = photoArray3.getString("photo_604");
                        } catch (JSONException e) {
                            try {
                                photo = photoArray3.getString("photo_130");
                            } catch (JSONException f) {
                            }
                        }
                    }
                    Picasso.with(mContext)
                            .load(photo)
                            .error(R.drawable.ic_error_outline_black)
                            .into(holder.vBodyImageView);
                }catch (JSONException e ){
                    try {
                        JSONObject photoArray3 = photoArray2.getJSONObject("sticker");
                        holder.vBodyImageView.setVisibility(View.VISIBLE);
                        Picasso.with(mContext)
                                .load(photoArray3.getString("photo_512"))
                                .error(R.drawable.ic_error_outline_black)
                                .into(holder.vBodyImageView);
                    }catch (JSONException es){}
                }
            }catch (JSONException e){}
            holder.vBodyMSG.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    ClipboardManager clipboard = (ClipboardManager) v.getContext().getSystemService(Context.CLIPBOARD_SERVICE);
                    ClipData clip = ClipData.newPlainText("", holder.vBodyMSG.getText());
                    clipboard.setPrimaryClip(clip);
                    Toast.makeText(v.getContext(), "Скопированно в буфер обменв" ,Toast.LENGTH_SHORT ).show();
                    return false;
                }
            });
        }catch (JSONException e){}
        if(position == count-1){
            String id = "0";
            try {
                JSONObject postJson = messJson.getJSONObject(count - 1);
                id = postJson.getString("id");
            }catch (JSONException e){}
            VKRequest request = new VKRequest("messages.getHistory", VKParameters.from(VKApiConst.USER_ID, Constants.ID,"count", "21", "offset", 0, "start_message_id" , id));
            request.executeWithListener(new VKRequest.VKRequestListener() {
                                            @Override
                                            public void onComplete(VKResponse response) {
                                                super.onComplete(response);
                                                JSONObject metaJson = null;
                                                try {
                                                    metaJson = response.json.getJSONObject("response");
                                                    JSONArray sourceArray =  metaJson.getJSONArray("items");
                                                    for (int i = 1; i < sourceArray.length(); i++) {
                                                        messJson.put(sourceArray.getJSONObject(i));
                                                    }
                                                } catch (JSONException e) {
                                                    e.printStackTrace();
                                                }
                                            }
                                        });
            count+=20;
            notifyDataSetChanged();
            Log.d("TAP", "TRUE");
            // вызываем метод догрузки новых айтемов или просто добавляем новые откуда-то
            // после подгрузки новых элементов не забываем вызвать notifyDataSetChanged()
        }
    }
 
    @Override
    public int getItemCount() {
        return count;
    }
}


Вернуться к обсуждению:
RecyclerView Adapter
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2017, 15:05
Готовые ответы и решения:

RecyclerView.Adapter загрузка изображения
При прокрутке RecycleView в ImageView загружается необходимая фотография.. Но при прокрутке почему...

Adapter + auto scroling RecyclerView
Всем привет! Начну сразу с постановки задачи: поступают данные, нам нужно поместить эти данные в...

Background resource для нескольких элементов в recyclerview.adapter
Наверно по теме не очень понятно что я имею ввиду, объясню на скрине public void...

RecyclerView и java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter pos
Добрый день! У меня есть RecyvlerView, который изумительно работает на всех устройствах, кроме...

Как вычислить параметр "position" в методе notifyItemChanged(int position) (RecyclerView.Adapter)
Добрый день, прошу о помощи начинающему программисту))) Есть 2 фрагмента: 1й - список вьюшек,...

12
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru