Android 在my GridView中填充的文本视图显示为空白
我正在使用Gridview显示技能列表。代码运行良好,甚至根据我的数组填充确切数量的项。但是,应显示项目名称的文本视图为空 这是我的gridview适配器的代码 SkillsAdapter.javaAndroid 在my GridView中填充的文本视图显示为空白,android,gridview,Android,Gridview,我正在使用Gridview显示技能列表。代码运行良好,甚至根据我的数组填充确切数量的项。但是,应显示项目名称的文本视图为空 这是我的gridview适配器的代码 SkillsAdapter.java public class SkillsAdapter extends BaseAdapter { private Context context; private final String[] skillValues; public SkillsA
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\u single\u 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>
将文本视图中的测试设置为不符合以下条件:
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);
} else {
gridView = (View) convertView;
}
textView.setText(skillValues[position]);
将以下行移出if-else块
textView.setText(skillValues[position]);
像
我建议您阅读android模式。用这个更改您的布局项XML,我使用了您的适配器类,它在我这边工作得很好 这可能对你有帮助
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="horizontal"
android:padding="5dp">
<TextView
android:id="@+id/single_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
android:textColor="#000000" />
</RelativeLayout>
skillValues是arraylist吗?所以,您必须检索数据live skillValues.get(position).toString()将文本视图的文本设置为if-elseYou正在“if”中设置值,否则情况如何??将setText行放在if-else之后。将setText移到if-else语句之外它不是arraylist,只是一个常规数组。在if语句之外设置文本也不起作用。
if (convertView == null) {
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.skills_single_item, null);
textView = (TextView) gridView.findViewById(R.id.single_label);
} else {
gridView = (View) convertView;
}
// set value into textview
textView.setText(skillValues[position]);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="horizontal"
android:padding="5dp">
<TextView
android:id="@+id/single_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
android:textColor="#000000" />
</RelativeLayout>