2017-02-01 2 views
-1

Мое приложение останавливается, к сожалению, когда код выполняется. Поскольку это активность адаптера, я полностью смущен.Мое приложение останавливается, к сожалению, когда код выполнен

import android.content.Context; 
import android.graphics.Bitmap; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.nostra13.universalimageloader.core.DisplayImageOptions; 
import com.nostra13.universalimageloader.core.ImageLoader; 
import com.nostra13.universalimageloader.core.assist.FailReason; 
import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener; 
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; 
import com.shuan.Project.R; 
import com.shuan.Project.list.Sample; 

import java.util.ArrayList; 


public class SelectedListAdapter extends BaseAdapter { 

private Context mContext; 
private ArrayList<Sample> list; 
private LayoutInflater inflater; 
private DisplayImageOptions options; 


public SelectedListAdapter(Context mContext, ArrayList<Sample> list) { 
    this.mContext = mContext; 
    this.list = list; 
    inflater = LayoutInflater.from(mContext); 
    options = new DisplayImageOptions.Builder() 
      .cacheInMemory(true) 
      .cacheOnDisk(true) 
      .showImageOnLoading(R.drawable.user) 
      .showImageForEmptyUri(R.drawable.user) 
      .showImageOnFail(R.drawable.user) 
      .considerExifParams(true) 
      .bitmapConfig(Bitmap.Config.RGB_565) 
      .build(); 
} 

@Override 
public int getCount() { 
    return list.size(); 
} 

@Override 
public Object getItem(int position) { 
    return position; 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    Sample curr = list.get(position); 

    convertView = inflater.inflate(R.layout.select_list_item, null); 
    ImageView usrImg = (ImageView) convertView.findViewById(R.id.usr_img); 
    TextView name = (TextView) convertView.findViewById(R.id.name); 
    TextView dt = (TextView) convertView.findViewById(R.id.intrvew_d_t); 
    TextView venue = (TextView) convertView.findViewById(R.id.intrvew_venue); 
    TextView type = (TextView) convertView.findViewById(R.id.intrvew_type); 
    //(1) 
    String[] getdt = curr.getLevel().split("-", 3); 
    String yr = getdt[0]; 
    String mnth = getdt[1]; 
    String dat = getdt[2];// if i hide this portion from (1) tha app does not stops but the date does not comes in format 


    name.setText(curr.getProPic()); 
    dt.setText("Date & Time : " + dat + " ' " + mnth + " ," + curr.getPos()); 
    venue.setText("Venue : " + curr.getName()); 

    if (curr.getCompanyName().equalsIgnoreCase("1")) { 
     type.setText("Interview Type : Face to Face"); 
    } else if (curr.getCompanyName().equalsIgnoreCase("2")) { 
     type.setText("Interview Type : Video Chat"); 
    } else { 
     type.setText("Interview Type : Voice Chat"); 
    } 


    ImageLoader.getInstance().displayImage(curr.getU_id(), usrImg, options, new SimpleImageLoadingListener() { 

     @Override 
     public void onLoadingStarted(String imageUri, View view) { 
      super.onLoadingStarted(imageUri, view); 
     } 

     @Override 
     public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 
      super.onLoadingFailed(imageUri, view, failReason); 
     } 

     @Override 
     public void onLoadingCancelled(String imageUri, View view) { 
      super.onLoadingCancelled(imageUri, view); 
     } 

     @Override 
     public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
      super.onLoadingComplete(imageUri, view, loadedImage); 
     } 
    }, new ImageLoadingProgressListener() { 
     @Override 
     public void onProgressUpdate(String s, View view, int i, int i1) { 

     } 
    }); 

    return convertView; 
    } 
} 

если я скрыть часть от (1) тха приложение не делает остановок, но дата не приходит в формате. лог-кота показывает как ошибка в индексе и длине. Какая ошибка с моим кодом?

Мой журнал кот

FATAL EXCEPTION: main 

Process: com.shuan.Project, PID: 27060 

java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 at com.shuan.Project.adapter.SelectedListAdapter.getView(SelectedListAdapter.java:74) 

at android.widget.AbsListView.obtainView(AbsListView.java:2467) 
at android.widget.ListView.makeAndAddView(ListView.java:1894) 
at android.widget.ListView.fillDown(ListView.java:710) 
at android.widget.ListView.fillFromTop(ListView.java:771) 
at android.widget.ListView.layoutChildren(ListView.java:1695) 
at android.widget.AbsListView.onLayout(AbsListView.java:2230) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1195) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:122) 
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) 
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1192) 
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:814) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:574) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1722) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:574) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1722) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:574) 
at android.view.View.layout(View.java:16001) 
at android.view.ViewGroup.layout(ViewGroup.java:5181) 
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2483) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2180) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800) 
at android.view.Choreographer.doCallbacks(Choreographer.java:603) 
at android.view.Choreographer.doFrame(Choreographer.java:572) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786) 
at android.os.Handler.handleCallback(Handler.java:815) 
at android.os.Handler.dispatchMessage(Handler.java:104) 
at android.os.Looper.loop(Looper.java:194) 
at android.app.ActivityThread.main(ActivityThread.java:5649) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
+0

который не линия не 74 здесь? – Prashant

+2

Ну, вы начали отлаживать. Держись. Поместите контрольную точку или распечатайте журнал там, и посмотрите, возвращает ли 'curr.getLevel()' то, что вы ожидаете, и если оно правильно разделено. Мы не можем вам помочь, поскольку у нас нет вашего набора данных. –

+0

@Prashant 'String mnth = getdt [1];' его строка 74 –

ответ

0

Я заменил этот код

name.setText(curr.getProPic()); 
dt.setText("Date & Time : " + dat + " ' " + mnth + " ," + curr.getPos()); 
venue.setText("Venue : " + curr.getName()); 

с этим

name.setText(curr.getProPic()); 
dt.setText("Date & Time : " + curr.getLevel() + " ," + curr.getPos()); 
venue.setText("Venue : " + curr.getName()); 

Теперь приложение работает гладко :-)

0

java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 at com.shuan.Project.adapter.SelectedListAdapter.getView(SelectedListAdapter.java:74)

это означает, что вы пытаетесь вытащить второй элемент из array/list, который имеет только один элемент.

проверка точно java : 74

Смежные вопросы