我在android api 23中制作ListView,但是当我构建它时,每件事都可以,但是当我向下滚动到列表视图的末尾时,应用程序就会粉碎。
我的问题是如何修复这个错误。
谢谢大家。
代码:
package com.company.ramez.worldgame;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class CountryList2Activity extends Activity {
ListView list;
String[] titles;
int[] images = {
R.drawable.afghanistan, R.drawable.albania, R.drawable.algeria, R.drawable.angola, R.drawable.andorra, R.drawable.antiguaanbuda, R.drawable.antiguaandbarbuda, R.drawable.australia, R.drawable.austria, R.drawable.zambia
};
@
Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_countr_list);
Resources res = getResources();
titles = res.getStringArray(R.array.title);
list = (ListView) findViewById(R.id.listview);
Ramezadapter ra = new Ramezadapter(this, titles, images);
list.setAdapter(ra);
}
}
class Ramezadapter extends ArrayAdapter < String > {
Context context;
int[] images1;
String[] titlearray;
Ramezadapter(Context c, String[] titles, int img[]) {
super(c, R.layout.activity_country__list__item, R.id.i_country_name, titles);
this.context = c;
this.images1 = img;
this.titlearray = titles;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater infleter = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = infleter.inflate(R.layout.activity_country__list__item, parent, false);
}
ImageView myimage = (ImageView) row.findViewById(R.id.c_logo);
TextView mytext = (TextView) row.findViewById(R.id.i_country_name);
myimage.setImageResource(images1[position]);
mytext.setText(titlearray[position]);
return row;
}
}
错误
java.lang.ArrayIndexOutOfBoundsException: length = 10;
index = 10
at com.company.ramez.worldgame.Ramezadapter.getView(CountryList2Activity.java: 62)
at android.widget.AbsListView.obtainView(AbsListView.java: 2346)
at android.widget.ListView.makeAndAddView(ListView.java: 1875)
at android.widget.ListView.fillDown(ListView.java: 702)
at android.widget.ListView.fillGap(ListView.java: 666)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java: 5029)
at android.widget.AbsListView.onGenericMotionEvent(AbsListView.java: 4054)
at android.view.View.dispatchGenericMotionEventInternal(View.java: 9404)
at android.view.View.dispatchGenericMotionEvent(View.java: 9385)
at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java: 2067)
at android.view.ViewGroup.dispatchGenericPointerEvent(ViewGroup.java: 2018)
at android.view.View.dispatchGenericMotionEvent(View.java: 9378)
at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java: 2067)
at android.view.ViewGroup.dispatchGenericPointerEvent(ViewGroup.java: 2018)
at android.view.View.dispatchGenericMotionEvent(View.java: 9378)
at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java: 2067)
at android.view.ViewGroup.dispatchGenericPointerEvent(ViewGroup.java: 2018)
at android.view.View.dispatchGenericMotionEvent(View.java: 9378)
at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java: 2067)
at android.view.ViewGroup.dispatchGenericPointerEvent(ViewGroup.java: 2018)
at android.view.View.dispatchGenericMotionEvent(View.java: 9378)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchGenericMotionEvent(PhoneWindow.java: 2411)
at com.android.internal.policy.PhoneWindow.superDispatchGenericMotionEvent(PhoneWindow.java: 1747)
at android.app.Activity.dispatchGenericMotionEvent(Activity.java: 2801)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchGenericMotionEvent(PhoneWindow.java: 2378)
at android.view.View.dispatchPointerEvent(View.java: 9516)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java: 4230)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java: 4096)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java: 3642)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java: 3695)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java: 3661)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java: 3787)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java: 3669)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java: 3844)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java: 3642)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java: 3695)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java: 3661)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java: 3669)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java: 3642)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java: 5922)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java: 5896)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java: 5857)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java: 6025)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java: 185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java: 323)
at android.os.Looper.loop(Looper.java: 135)
at android.app.ActivityThread.main(ActivityThread.java: 5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 616)