Я использую Gridview, чтобы показать список навыков. Код работает нормально, даже заполняет точное количество элементов в соответствии с моим массивом. Тем не менее, TextView
, который должен отображать имена элементов, пуст.TextViews, заполненные в моем GridView, отображаются пустым
Это код для моего GridView адаптера
SkillsAdapter.java
public class SkillsAdapter extends BaseAdapter {
private Context context;
private final String[] skillValues;
public SkillsAdapter(Context context, String[] skillValues) {
this.context = context;
this.skillValues = skillValues;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.skills_single_item, null);
// set value into textview
textView = (TextView) gridView.findViewById(R.id.single_label);
textView.setText(skillValues[position]);
} else {
gridView = (View) convertView;
}
return gridView;
}
@Override
public int getCount() {
return skillValues.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
Это код для моего файла макета skills_single_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp"
android:background="@drawable/rounded_corners">
<TextView
android:id="@+id/single_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_gravity="center"/>
</RelativeLayout>
Массив не является нулевым. Ошибка возникает где-то здесь
// set value into textview
textView = (TextView) gridView.findViewById(R.id.single_label);
textView.setText(skillValues[position]);
набора текста TextView из If Else –
skillValues является ArrayList ? так что вам нужно получить данные live skillValues.get (position) .toString() –
Вы устанавливаете значение в «if», а что еще обстоит дело? Поместите эту строку setText после вашего if-else. –