将字符串数组转换为整型数组 Android

3

我正在尝试将一个字符串数组 (listview_array) 转换为 整形数组,然后比较数字。不幸的是,每次执行应用程序时都会崩溃。

以下是代码:

public class FindStop3 extends Activity implements OnItemClickListener{
    private String stop,line,listview_array[],buschain,dayweek,weekly;
    private int selected,day;   
    private TextView tvLine,tvToday,tvNext;
    private ListView lv;    
    String currentdate = java.text.DateFormat.getDateInstance().format(Calendar.getInstance().getTime());//Get current time
    String currenttime = java.text.DateFormat.getTimeInstance().format(Calendar.getInstance().getTime());//Get current time
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_find_stop3);
        FindStop3.this.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);//Lateral transition

        Intent intent = getIntent();//Take data from last activity
        Bundle bundle = intent.getExtras();
        line=bundle.getString("Line");//Takes the previous selected line from the last activity
        stop=bundle.getString("Stop");//Takes the previous selected stop from the last activity
        setTitle("Selected stop: "+stop);//Modifies title

        getDayOfWeek();//Gets day of week
        getBusChain(line,stop,weekly);//Calls method to get the xml chain name        

        tvLine = (TextView) findViewById(R.id.tvLine);
        tvLine.setText("Line from "+line);

        tvNext = (TextView) findViewById(R.id.tvNext);
        tvNext.setText("Next bus arrives at "+currenttime);


        tvToday = (TextView) findViewById(R.id.tvToday);
        tvToday.setText(dayweek+","+currentdate+" schedule:");          

        selected= getResources().getIdentifier(buschain, "array",
                this.getPackageName());//Lets me use a variable as stringArray

        listview_array = getResources().getStringArray(selected);

        lv = (ListView) findViewById(R.id.lvSchedule);
        lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listview_array));


        getNextBus();


    }

这里是转换它的方法:

public void getNextBus () {
        //Converts listview_array into an integer array

         int myar[]=new int[listview_array.length];

                  for(int i=0;i<listview_array.length;i++){

                      myar[i]=Integer.parseInt(listview_array[i]);



            }

如果该方法未执行,应用程序将正常工作。以下是从xml文件中获取的值:

<string-array name="Schedule">
        <item>05:40</item>
        <item>06:00</item>
        <item>06:16</item>
        <item>06:28</item>
        <item>06:40</item>
        <item>07:16</item>
        <item>07:29</item> 
        <item>07:43</item>
        <item>07:55</item>
        <item>08:07</item>
        <item>08:22</item>       
    </string-array>

能否有人提供一些关于问题可能是什么的想法?

谢谢。


2
LogCat 说了什么? - pedromss
3
你是不是把"05:40"传给了Interger.parseInt? 这样做是行不通的,应该将"05"和"40"分开传递。 - Joseph Boyle
1个回答

1
我认为你的问题在于尝试转换值时出错,因为像"05:40"这样的值无法转换为整数。
很可能会出现NumberFormatException异常。
如果您想要更好的答案,请发送应用程序日志。

谢谢。这非常有帮助,我已经解决了问题! - user3302071

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接