【发布时间】:2016-12-11 18:38:12
【问题描述】:
我想设置一个带有 GridView 的 Activity,该 GridView 具有使用 ArrayAdapter 添加的自定义视图,但在模拟器上,gridview 不显示任何内容,这是我的代码
带有 Gridview 的 Activity
public class ContactActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_activity);
GridView gv = (GridView) findViewById(R.id.gv);
Contact c1 = new Contact(1,"a","ab","01","a@outlook.fr");
Contact c2 = new Contact(2,"b","cd","02","b@outlook.fr");
Contact c3 = new Contact(3,"c","ef","03","c@outlook.fr");
Contact c4 = new Contact(4,"d","gh","04","d@outlook.fr");
Contact c5 = new Contact(5,"e","ij","05","e@outlook.fr");
List<Contact> listc = new ArrayList<>();
listc.add(c1);
listc.add(c2);
listc.add(c3);
listc.add(c4);
listc.add(c5);
ContactAdapter ca = new ContactAdapter(this, R.layout.item, listc);
gv.setAdapter(ca);
Intent intent = getIntent();
final Intent i = new Intent(this, AjouterContactActivity.class);
FloatingActionButton a = (FloatingActionButton) findViewById(R.id.fab);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(i);
}
});
}}
扩展 ArrayAdapter 的类
public class ContactAdapter extends ArrayAdapter {
List<Contact> items;
int viewResourecId;
public ContactAdapter(Context context, int viewResourecId, List<Contact> items) {
super(context,viewResourecId);
this.viewResourecId=viewResourecId;
this.items=items;
}
@Override
public int getCount() {
return 0;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView= convertView;
if(convertView==null){
LayoutInflater inflater1 = (LayoutInflater) ((ContactActivity)getContext()).getLayoutInflater();
itemView = inflater1.inflate(viewResourecId,parent,false);
}
TextView tv1 = (TextView)itemView.findViewById(R.id.name);
TextView tv2 = (TextView)itemView.findViewById(R.id.cap);
tv2.setText(items.get(position).getNom().charAt(0));
tv1.setText(items.get(position).getNom()+" "+items.get(position).getPrenom());
return itemView;
}}
自定义项目布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="192dp"
android:layout_height="50dp"
android:id="@+id/cap"
android:gravity="center|top"
/>
<TextView
android:layout_width="192dp"
android:layout_height="10dp"
android:id="@+id/name"
android:layout_below="@+id/cap"
android:gravity="center|bottom"
/>
</RelativeLayout>
【问题讨论】:
标签: android gridview android-arrayadapter android-custom-view custom-adapter