Java.lang.indexoutofboundsexception: неверный индекс 3, размер 2 в ViewpagerAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Java.lang.indexoutofboundsexception: неверный индекс 3, размер 2 в Viewpager

Сообщение Anonymous »

В моем приложении я использую два языка, используя один и тот же адаптер, сначала, если пользователь выберет первой язык, данные заполняются в ViewPager , если мы проведите две, три страницы после этого, если мы изменим другие языковые данные, заполненные в ViewPager , но если мы нажмите на какую -либо кнопку на пейджере, он показывает это
error java.lang.IndexOutOfBoundsException: Invalid index 3, size is 2,
Может ли кто -нибудь дать решение для этой ошибки, заранее спасибо.
public class MyCustomAdapter extends PagerAdapter {

Context context1;
LayoutInflater inflater = null;
String title;
public static LinearLayout full_link, containers, language;
public static Uri bmpUri = null;
TextView txtfullstory;
int pStatus = 0;
private Handler handler = new Handler();
public static Bitmap bitmap;
private SharedPreferences.Editor editor;
private SharedPreferences pref;
String user_type_id;

public MyCustomAdapter(Context context1,
ArrayList NewsidArray,
ArrayList NewsdescArray,
ArrayList NewstitleArray,
ArrayList NewsimageArray,
ArrayList NewsdateArray,
ArrayList NewsauthorArray,
ArrayList NewsurlArray) {

this.context1 = context1;
newsidArray = NewsidArray;
newsdescArray = NewsdescArray;
newstitleArray = NewstitleArray;
newsimageArray = NewsimageArray;
newsdateArray = NewsdateArray;
newsauthorArray = NewsauthorArray;
newsurlArray = NewsurlArray;

}

@Override
public int getCount() {

if (newstitleArray == null) {
return 0;
}
return newstitleArray.size();
}

@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}

public Object instantiateItem(ViewGroup container, final int position) {

final int delPosition = position;
final Holder holder = new Holder();

inflater = (LayoutInflater) context1.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View itemView = inflater.inflate(R.layout.fragment_layout, container, false);

holder.date = (TextView) itemView.findViewById(R.id.txtdate);
holder.txttitle = (TextView) itemView.findViewById(R.id.txttitle);
holder.txtdesc = (TextView) itemView.findViewById(R.id.txtdesc);
holder.txtauthor = (TextView) itemView.findViewById(R.id.txtauthor);
holder.imageview = (ImageView) itemView.findViewById(R.id.imageview);
holder.share = (ImageView) itemView.findViewById(R.id.share);
holder.url = (TextView) itemView.findViewById(R.id.url);
holder.reverse = (ImageView) itemView.findViewById(R.id.reverse);
holder.progress = (ProgressBar) itemView.findViewById(R.id.progress);
full_link = (LinearLayout)itemView.findViewById(R.id.line_above);
containers = (LinearLayout)itemView.findViewById(R.id.containers);
language = (LinearLayout)itemView.findViewById(R.id.language);
txtfullstory = (TextView) itemView.findViewById(R.id.txtfullstory);

String date = newsdateArray.get(position).toString();
String image = newsimageArray.get(position).toString();

holder.txtdesc.setText(Html.fromHtml(newsdescArray.get(position).toString()));
holder.txttitle.setText(Html.fromHtml(newstitleArray.get(position).toString()));
holder.txtauthor.setText(Html.fromHtml(newsauthorArray.get(position).toString()));

holder.url.setText(newsurlArray.get(position).toString());
Typeface font = Typeface.createFromAsset(context1.getAssets(), "fonts/Seravek.ttc");
holder.txtdesc.setTypeface(font);
holder.txttitle.setTypeface(font, Typeface.BOLD);
holder.txtauthor.setTypeface(font);
title = newstitleArray.get(position);

pref = context1.getSharedPreferences("MyPref", 0);
editor = pref.edit();
user_type_id = pref.getString("langid", null);

if(user_type_id != null && user_type_id.equals("2")){
txtfullstory.setText(Html.fromHtml("पर पूरी कहानी"));

}else {
txtfullstory.setText(Html.fromHtml("Full story on"));

}

try {
@SuppressLint("SimpleDateFormat") SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:sss");
Date parsedDate = dateFormat1.parse(date);
long times = parsedDate.getTime();
new Timestamp(times);
String result = (String) DateUtils.getRelativeTimeSpanString(times, System.currentTimeMillis() + 5 * 60 * 1000, 0);
holder.date.setText(result);

} catch (ParseException e) {
Log.d("Error", e.getMessage());
}

if(!(!image.equalsIgnoreCase("") && !image.equalsIgnoreCase(null))) {
holder.imageview.setVisibility(View.INVISIBLE);
}
else{

holder.progress.setVisibility(View.VISIBLE);
holder.imageview.setVisibility(View.INVISIBLE);

new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
while (pStatus
} < /p>
execeptions < /p>
java.lang.IndexOutOfBoundsException: Invalid index 3, size is 2
java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
java.util.ArrayList.get(ArrayList.java:308)
oddcast.jetlabs.com.oddcast.adapter.MyCustomAdapter$3.onClick(MyCustomAdapter.java:267)
android.view.View.performClick(View.java:4761)
android.view.View$PerformClick.run(View.java:19767)
android.os.Handler.handleCallback(Handler.java:739)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5312)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)


Подробнее здесь: https://stackoverflow.com/questions/351 ... -viewpager
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»