У меня есть этот фрагмент кода, который получает массивы хэштегов из базы данных сервера Parse на основе каждого сообщения:
// Tags
List<String> tagsArray = new ArrayList<>();
if (pObj.getList(Configurations.POSTS_TAGS) != null) {
tagsArray = pObj.getList(Configurations.POSTS_TAGS);
Log.i(Configurations.TAG, "TAGS: " + tagsArray);
for (int i=0; i<tagsArray.size(); i++) {
LinearLayout tagsLayout = finalCell.findViewById(R.id.cpTagsLayout);
tagsLayout.setOrientation(LinearLayout.HORIZONTAL);
// Create Buttons
final Button tButt = new Button(ctx);
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 44, getResources().getDisplayMetrics());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, height);
lp.setMargins(3, 0, 3, 0);
tButt.setLayoutParams(lp);
tButt.setText(tagsArray.get(i));
tButt.setTypeface(Configurations.osItalic); tButt.setTextColor(Color.parseColor("#777777")); tButt.setBackgroundColor(Color.parseColor("#00000000"));
tButt.setTextSize(10);
tButt.setAllCaps(false);
tButt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag = tButt.getText().toString();
Log.i(Configurations.TAG, "SELECTED TAG: " + tag);
}});
// Add button to the layout
tagsLayout.addView(tButt);
}// ./For loop
}// ./ If
Приложение правильно получает массивы тегов при прокрутке ListView вниз, я знаю это по проверке Logcat:
I/log-: TAGS: [#quoteoftheday, #fun, #life]
I/log-: TAGS: [#breakfastinlove, #lifestyle, #pikkypic]
I/log-: TAGS: [#bigapple, #lifestyle]
В любом случае, начиная с 3-й ячейки, и даже если я прокручиваю свой ListView вверх, я получаю дополнительные кнопки в Scrollview каждой ячейки, они представляют собой сумму предыдущих массивов, поэтому, например, в 3-й ячейке отображается следующие кнопки подряд:
# quoteoftheday #fun #life #breakfastinlove, #lifestyle, #pikkypic, #bigapple, # lifestyle
пока должно отображаться только:
# bigapple # стиль жизни
Logcat продолжает показывать правильные массивы тегов, независимо от того, где я прокручиваю свой ListView, так что это означает, что каждый tagsArray
правильно выбирается с сервера.
Как я могу исправить эту странную проблему?
Спасибо!