2017-02-01 5 views
-1

Mon application est arrêtée malheureusement quand le code est exécuté. Comme c'est une activité d'adaptateur je suis totalement confus.Mon application est arrêtée malheureusement quand le code est exécuté

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; 
    } 
} 

Si je cache la partie de (1) l'application ne s'arrête pas, mais la date ne vient pas en format. le chat de journal montre comme l'erreur dans l'index et la longueur. quelle serait l'erreur avec mon code?

Mon journal chat

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

qui est la ligne n ° 74 ici? – Prashant

+2

Eh bien, vous avez commencé à déboguer. Continue'. Placez un point d'arrêt, ou un journal, et regardez si 'curr.getLevel()' renvoie ce que vous attendez, et s'il est correctement divisé. Nous ne pouvons pas vraiment vous aider, puisque nous n'avons pas votre ensemble de données. –

+0

@Prashant 'Chaîne mnth = getdt [1];' sa ligne 74 –

Répondre

0

J'ai remplacé ce code

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

avec ce

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

fonctionne maintenant bon déroulement :-)

0

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

cela signifie que vous essayez de tirer deuxième élément d'une array/list qui n'a point unique.

vérifier exactement à java : 74