我想要實現這兩個單元格中鍵入我的應用程序的圖像和文字,讓我只是測試此列表視圖中,我的應用程序工作正常和完美的負載,但是當我開始TIS崩潰用下面的錯誤滾動安卓應用程序崩潰滾動時有2個不同細胞
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2130968624
這是我的適配器
public class myadapter extends ArrayAdapter<myobject> {
Context context;
List<myobject> objectlist;
public myadapter(Context context, int resource, List<myobject> objects) {
super(context, resource, objects);
this.context = context;
this.objectlist = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder2 tvholder;
ViewHolder ivholder;
LayoutInflater inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (getItemViewType(position) == R.layout.textcell){
if(convertView==null){
convertView= inflater.inflate(getItemViewType(position),parent,false);
tvholder= new ViewHolder2(convertView);
convertView.setTag(tvholder);
}else{
tvholder = (ViewHolder2)convertView.getTag();
}
tvholder.TV.setText(objectlist.get(position).getText());
}else{
if(convertView==null){
convertView= inflater.inflate(getItemViewType(position),parent,false);
ivholder = new ViewHolder(convertView);
convertView.setTag(ivholder);
}else{
ivholder=(ViewHolder) convertView.getTag();
}
ivholder.IV.setImageResource(objectlist.get(position).getImage());
}
return convertView;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if(objectlist.get(position).getType()==1){
return R.layout.textcell;
}else{
return R.layout.imagecell;
}
}
}
class ViewHolder{
ImageView IV;
public ViewHolder(View view){
IV = (ImageView)view.findViewById(R.id.IV);
}
}
class ViewHolder2{
TextView TV;
public ViewHolder2(View view){
TV = (TextView)view.findViewById(R.id.TV);
}
}
我的對象:
public class myobject {
int type;
String Text;
int Image;
public myobject(){
this.type = 0;
this.Text = null;
this.Image = 0;
}
public myobject(int type,String Text,int Image){
this.type=type;
this.Image = Image;
this.Text = Text;
}
public int getType(){ return type;}
public String getText(){return Text;}
public int getImage(){return Image;}
}
使用在主要活動:
public class MainActivity extends AppCompatActivity {
ListView LV;
List<myobject> myobjectList = new ArrayList<>();
myadapter myadapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LV = (ListView) findViewById(R.id.LV);
myobject myobject1 = new myobject(1,"teeeeeexxxxt",0);
myobject myobject2 = new myobject(2,null,R.mipmap.ic_launcher);
myobject myobject3 = new myobject(1,"teeeeeexxxxt",0);
myobject myobject4 = new myobject(1,"teeeeeexxxxt",0);
myobject myobject5 = new myobject(2,null,R.mipmap.ic_launcher);
myobject myobject6 = new myobject(2,null,R.mipmap.ic_launcher);
myobject myobject7 = new myobject(2,null,R.mipmap.ic_launcher);
myobject myobject8 = new myobject(1,"teeeeeexxxxt",0);
myobject myobject9 = new myobject(1,"teeeeeexxxxt",0);
myobjectList.add(myobject1);
myobjectList.add(myobject2);
myobjectList.add(myobject3);
myobjectList.add(myobject4);
myobjectList.add(myobject5);
myobjectList.add(myobject6);
myobjectList.add(myobject7);
myobjectList.add(myobject8);
myobjectList.add(myobject9);
myadapter = new myadapter(this,0,myobjectList);
LV.setAdapter(myadapter);
}
我真的不知道是什麼原因造成這種致命的錯誤+是我的實現認爲是最優化的方式爲2種不同的細胞類型?
任何想法,將不勝感激
哪一行導致錯誤,你可以發佈烏爾完整的錯誤日誌 –