我试图添加到GridView中的文本视图,但不幸的是,只有一个被添加...我试图使另一个适配器的第二个TextView,但同样的问题,我认为问题在这一行在我的适配器,但我不能找出它。
((TextView) view.findViewById(R.id.title)).setText(catList.get(position));
所以这是我的GridView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#DDACA4A4"
tools:context=".MainActivity">
<GridView
android:id="@+id/catGridView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="10dp"
android:background="@drawable/border"
android:columnWidth="100dp"
android:gravity="center"
android:numColumns="2">
</GridView>
而这是mainActivity的java类
catGrid = findViewById(R.id.catGridView)。
List<String> catList2 = new ArrayList<>();
catList2.add("subTitle 1");
catList2.add("subTitle 2");
catList2.add("subTitle 3");
catList2.add("subTitle 4");
catList2.add("subTitle 5");
catList2.add("subTitle 6");
CatGridAdapter2 adapter2 = new CatGridAdapter2(catList2);
catGrid.setAdapter(adapter2);
List<String> catList = new ArrayList<>();
catList.add("Cat 1");
catList.add("Cat 2");
catList.add("Cat 3");
catList.add("Cat 4");
catList.add("Cat 5");
catList.add("Cat 6");
CatGridAdapter adapter = new CatGridAdapter(catList);
catGrid.setAdapter(adapter);
}
这就是我的适配器
public class CatGridAdapter extends BaseAdapter {
private List<String> catList;
public CatGridAdapter(List<String> catList) {
this.catList = catList;
}
@Override
public int getCount() {
return catList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.quizitem, parent, false);
} else {
view = convertView;
}
((TextView) view.findViewById(R.id.title)).setText(catList.get(position));
return view;
}
我试图找到解决方案,但我找不到任何东西......。
你必须创建一个模型类,这将看起来像。
public class MyData {
private String cat;
private String SubTitle;
public MyData(String cat, String subTitle) {
this.cat = cat;
SubTitle = subTitle;
}
public String getCat() {
return cat;
}
public void setCat(String cat) {
this.cat = cat;
}
public String getSubTitle() {
return SubTitle;
}
public void setSubTitle(String subTitle) {
SubTitle = subTitle;
}
}
然后在你的MainActivity类中,你必须设置你的数据并初始化你的适配器,就像。
List<MyData> catList = new ArrayList<>();
catList.add(new MyData("Cat 1","SubCat 1"));
catList.add(new MyData("Cat 2","SubCat 2"));
catList.add(new MyData("Cat 3","SubCat 3"));
CatGridAdapter adapter = new CatGridAdapter(catList);
catGrid.setAdapter(adapter);
同时你也要改变你的适配器类的构造方法:
private List<MyData> catList;
public CatGridAdapter(List<MyData> catList) {
this.catList = catList;
}
你必须添加两个文本视图,一个是标题,另一个是子标题,并在适配器类中使用这两个文本视图,像这样。
((TextView) view.findViewById(R.id.title)).setText(catList.get(position));
((TextView) view.findViewById(R.id.SubTitle)).setText(catList.get(position));
-如果您有任何疑问,欢迎随时讨论。