我的应用程序在代码执行时很快就被停止了。因为它是一个适配器活动我很困惑。
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)应用程序没有停止,但日期不是格式。 log cat在索引和长度方面显示错误。我的代码会出错吗?
我的日志猫
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 :(得分:0)
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 at com.shuan.Project.adapter.SelectedListAdapter.getView(SelectedListAdapter.java:74)
这意味着您正试图从只有一个项目的array/list
中提取第二项。
确切地检查java : 74
答案 1 :(得分:0)
我已经替换了这段代码
{
"project": {
"version": "1.0.0-beta.19-3",
"name": "adm"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"assets/lib/bootstrap/css/bootstrap.css",
"../node_modules/font-awesome/css/font-awesome.css",
"assets/lib/metismenu/metisMenu.css",
"assets/lib/animate.css/animate.css",
"assets/css/customradiocss.css",
"rainbow/blackboard.css"
],
"scripts": [
"assets/lib/jquery/jquery.js",
"assets/lib/bootstrap/js/bootstrap.js",
"assets/lib/metismenu/metisMenu.js",
"assets/lib/screenfull/screenfull.js",
"assets/js/core.js",
"assets/js/app.js",
"assets/js/easyResponsiveTabs.js",
"rainbow/rainbow-custom.min.js"
],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"addons": ["../node_modules/font-awesome/fonts/*.+(otf|eot|svg|ttf|woff|woff2)"],
"packages": [],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"prefixInterfaces": false,
"inline": {
"style": false,
"template": false
},
"spec": {
"class": false,
"component": true,
"directive": true,
"module": false,
"pipe": true,
"service": true
}
}
}
用这个
name.setText(curr.getProPic());
dt.setText("Date & Time : " + dat + " ' " + mnth + " ," + curr.getPos());
venue.setText("Venue : " + curr.getName());
现在申请工作顺利: - )