今天发现了一个问题,在一个页面中,添加两个listView,然后两个listview使用同一种类型的baseAdapter,结果是能显示一个listview,还不清楚是为什么,后面再解决。
这是xml:
<?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"
tools:context=".MainActivity">
<ListView
android:id="@+id/list1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/list2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
这是activity里的:
listView1 = findViewById(R.id.list1);
listView2 = findViewById(R.id.list2);
List<String> strings = new ArrayList<>();
List<String> strings1 = new ArrayList<>();
for(int i = 0;i<10;i++) {
strings.add("1");
strings1.add("2");
}
MyAdapter myAdapter = new MyAdapter(strings,this);
MyAdapter myAdapter1 = new MyAdapter(strings1,this);
listView1.setAdapter(myAdapter);
listView2.setAdapter(myAdapter1);
这是自定义的baseAdapter:
private List<String> mList;
private Context mContetx;
private TextView textView;
public MyAdapter(List<String> mList,Context mContetx){
this.mList = mList;
this.mContetx = mContetx;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = LayoutInflater.from(mContetx).inflate(R.layout.item,null);
textView = view.findViewById(R.id.textview);
textView.setText(mList.get(i));
return view;
}
发现,第二个listview不执行getView方法。