如何在listview中以不同的视图显示30行我需要显示1 4 7 10 13 ....... textview 2 5 8 11 14 ....... edittext view 3 6 9 12 15。 ........图像视图
此处代码出现错误
public View getView(int position, View v, ViewGroup parent) {
if(position==0){
v=getLayoutInflater().inflate(R.layout.secondactvity, null);
TextView t1=(TextView)v.findViewById(R.id.textView1);
t1.setText(names[position]);
Log.d("View Number", position+"");
}
else if(position==1){
v=Inflater.
Log.d("View Number", position+"");
EditText e1=(EditText)v.findViewById(R.id.editText1);
}
else if(position==2){
v=getLayoutInflater().inflate(R.layout.thirdactivty, null);
ImageView im1=(ImageView)v.findViewById(R.id.imageView1);
im1.setImageResource(img[position]);
Log.d("View Number", position+"");
}
答案 0 :(得分:1)
您有两种解决方案可以成功显示不同的行。
第一个是,像@Jignesh Jain建议的那样,有一个包含所有类型视图的布局,并在每行不需要的视图上使用setVisibility(View.GONE)
。
第二个(我认为更好)是通过实施getViewTypeCount()
和getItemViewType(int position)
来使用不同的视图类型。使用此to方法,getView
中的convertView将始终为良好类型(如果不为null),并且可以像往常一样重用。