不幸的是App停止了 - Spinner中的错误

时间:2014-08-06 14:52:13

标签: android eclipse spinner

我已经尝试了所有功能但仍无法弄清楚此代码中的错误,每当我点击按钮'获取费用' ,一个对话框打开显示"不幸的是app停止了#34;。请帮忙......

MetroFare.java代码

package com.myapp.anuj;

import com.myapp.anuj.MetroFare;
import com.myapp.anuj.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class MetroFare extends Activity implements OnClickListener, OnItemSelectedListener{

String start[] = {"Shastri Nagar", "Kashmere Gate", "Dwarka Mor"};
String dest[] = {"Pratap Nagar", "Rajiv Chowk", "Kirti Nagar"};
Spinner starting, destination;
Button getfare;
int fare = 0;
int s=0, d=0;
TextView result;
int farearray[][] = {{8,15,14}, {10,12,15}, {21,18,15}};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.kuchbhi);

    getfare = (Button) findViewById(R.id.bGetFare);
    result = (TextView) findViewById(R.id.tvShowFare);
    getfare.setOnClickListener(this);

    ArrayAdapter<String> adapterStart = new ArrayAdapter<String>(MetroFare.this, android.R.layout.simple_spinner_item, start);
    ArrayAdapter<String> adapterDest = new ArrayAdapter<String>(MetroFare.this, android.R.layout.simple_spinner_item, dest);
    starting = (Spinner) findViewById(R.id.spinnerStart);
    destination = (Spinner) findViewById(R.id.spinnerDest);
    starting.setAdapter(adapterStart);
    destination.setAdapter(adapterDest);
    starting.setOnItemSelectedListener(this);
    destination.setOnItemSelectedListener(this);
}
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    String sfare = getString(fare);
    result.setText(sfare);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
     s = starting.getSelectedItemPosition();
     d = destination.getSelectedItemPosition();
     fare = farearray[s][d];
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

    }

}

kuchbhi.xml的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Spinner
    android:id="@+id/spinnerStart"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Spinner
    android:id="@+id/spinnerDest"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/bGetFare"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Get Fare" />

<TextView
    android:id="@+id/tvShowFare"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

正如我所提到的,您的问题是这个调用:getString(fare),它正在尝试检索ID为fare的字符串资源。从您的代码判断,我假设您只是尝试在TextView中显示fare的字符串值,在这种情况下更改该调用如下:

 String sfare = String.valueOf(fare);