java - android 数组索引越界

标签 java android

我有一个字符串数组,它以“2012-04-26T08:38:00”的格式存储日期。我需要两个时间差,所以我从“T”中分割字符串并将其存储在数组中 所以现在

at array index 0 = 2012-04-26
and array index 1 = 08:38:00

现在从第一个索引开始,我用“:”分割,所以它的存储方式如下

[0] = 08
[1] = 38
[2] = 00

现在,当我从中减去当前时间时,昨天它给了我很好的输出,但现在它引发了错误。

 04-25 17:32:34.103: WARN/System.err(4292): java.lang.ArrayIndexOutOfBoundsException: index=1 length=1
04-25 17:32:34.103: WARN/System.err(4292):     at com.housedisplay.ListViewCustomAdapter.getView(ListViewCustomAdapter.java:83)
04-25 17:32:34.103: WARN/System.err(4292):     at android.widget.AbsListView.obtainView(AbsListView.java:1964)
04-25 17:32:34.113: WARN/System.err(4292):     at android.widget.ListView.makeAndAddView(ListView.java:1756)
04-25 17:32:34.113: WARN/System.err(4292):     at android.widget.ListView.fillDown(ListView.java:656)
04-25 17:32:34.113: WARN/System.err(4292):     at android.widget.ListView.fillFromTop(ListView.java:716)
04-25 17:32:34.113: WARN/System.err(4292):     at android.widget.ListView.layoutChildren(ListView.java:1609)
04-25 17:32:34.123: WARN/System.err(4292):     at android.widget.AbsListView.onLayout(AbsListView.java:1794)
04-25 17:32:34.123: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.123: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.123: WARN/System.err(4292):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
04-25 17:32:34.123: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.123: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.123: WARN/System.err(4292):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
04-25 17:32:34.133: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.133: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.133: WARN/System.err(4292):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1542)
04-25 17:32:34.133: WARN/System.err(4292):     at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1527)
04-25 17:32:34.144: WARN/System.err(4292):     at android.widget.LinearLayout.onLayout(LinearLayout.java:1316)
04-25 17:32:34.144: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.144: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.144: WARN/System.err(4292):     at android.widget.FrameLayout.onLayout(FrameLayout.java:400)
04-25 17:32:34.144: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.154: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.154: WARN/System.err(4292):     at com.google.android.maps.MapView.onLayout(MapView.java:764)
04-25 17:32:34.154: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.163: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.163: WARN/System.err(4292):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
04-25 17:32:34.163: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.163: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.163: WARN/System.err(4292):     at android.widget.FrameLayout.onLayout(FrameLayout.java:400)
04-25 17:32:34.173: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.183: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.183: WARN/System.err(4292):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1542)
04-25 17:32:34.183: WARN/System.err(4292):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1403)
04-25 17:32:34.183: WARN/System.err(4292):     at android.widget.LinearLayout.onLayout(LinearLayout.java:1314)
04-25 17:32:34.183: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.183: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.193: WARN/System.err(4292):     at android.widget.FrameLayout.onLayout(FrameLayout.java:400)
04-25 17:32:34.193: WARN/System.err(4292):     at android.view.View.layout(View.java:9330)
04-25 17:32:34.193: WARN/System.err(4292):     at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-25 17:32:34.203: WARN/System.err(4292):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1201)
04-25 17:32:34.203: WARN/System.err(4292):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1944)
04-25 17:32:34.203: WARN/System.err(4292):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-25 17:32:34.213: WARN/System.err(4292):     at android.os.Looper.loop(Looper.java:126)
04-25 17:32:34.213: WARN/System.err(4292):     at android.app.ActivityThread.main(ActivityThread.java:3997)
04-25 17:32:34.213: WARN/System.err(4292):     at java.lang.reflect.Method.invokeNative(Native Method)
04-25 17:32:34.213: WARN/System.err(4292):     at java.lang.reflect.Method.invoke(Method.java:491)
04-25 17:32:34.213: WARN/System.err(4292):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
04-25 17:32:34.223: WARN/System.err(4292):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
04-25 17:32:34.223: WARN/System.err(4292):     at dalvik.system.NativeStart.main(Native Method)

代码::

try {
            holder.imgViewLogo.setText(arr_ServiceNumber[position]);
            holder.txtViewTitle.setText(itemList[position]);

            stime = arr_ScheduledDepartureTime[position].split("T");
            sTime2  = stime[1].split(":");

            Date dt = new Date();
            int hours = dt.getHours();
            int minutes = dt.getMinutes();
            int myhour = Integer.parseInt(sTime2[0]);
            int mymin = Integer.parseInt(sTime2[1]);

            int onefire = Math.abs((myhour - hours) * 60);
            int total;
            if (onefire >= 60) {
                total = onefire - Math.abs((mymin - minutes));
            } else {
                total = onefire + Math.abs((mymin - minutes));
            }
            holder.lstrw_btn_departure.setText(total + " min \n" + "("
                    + sTime2[0] + ":" + sTime2[1] + ")");
        } catch (Exception e) {
            e.printStackTrace();
        }

最佳答案

Java 可以为您解析字符串。

String dateString = "2012-04-26T08:38:00";
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = null;
try {
    date = parser.parse(dateString);
} catch (ParseException e) {
    // error parsing.
}
if (date != null) {
    // do something with date.
}

关于java - android 数组索引越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10315246/

相关文章:

java - 在对我的 Java 应用程序进行基准测试时,如何补偿没有 "quiet"机器的情况?

java - 使用android studio在android中通过单击java中的媒体播放器按钮来播放声音

java - 日历的 getTime() 方法返回错误的时间

android - 选项卡布局中的 map View 抛出,java.lang.IllegalStateException : Binder has been finalized , 终结器抛出未捕获的异常

java - 谷歌播放会自动在主屏幕上创建我们的应用程序的快捷方式吗?

java - 让元素消失

android - 是否有任何解决方法可以在 Android 上运行 JRE 应用程序?

java - 比较 "T extends Number"是否相等

java - 为什么PocketSphinx Android demo需要cygwin

java - 与未签名 Java 小程序的原始服务器的套接字连接