所以这是我的第一个真正的 Android 程序(!hello world),但我确实有 java 经验。程序编译得很好,但是在运行时它一打开就崩溃(尝试调试,但它在到达我的断点之前就崩溃了)。正在寻找任何对android更有经验的人的建议。
package org.me.tipcalculator;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.text.NumberFormat;
import android.util.Log;
public class TipCalculator extends Activity {
public static final String tag = "TipCalculator";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
final EditText mealpricefield = (EditText) findViewById(R.id.mealprice);
final TextView answerfield = (TextView) findViewById(R.id.answer);
final Button button = (Button) findViewById(R.id.calculate);
button.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v) {
try
{
Log.i(tag, "onClick invoked.");
String mealprice = mealpricefield.getText().toString();
Log.i(tag, "mealprice is [" + mealprice + "]");
String answer = "";
if (mealprice.indexOf("$") == -1)
{
mealprice = "$" + mealprice;
}
float fmp = 0.0F;
NumberFormat nf =
java.text.NumberFormat.getCurrencyInstance();
fmp = nf.parse(mealprice).floatValue();
fmp *= 1.2;
Log.i(tag, "Total Meal Price (unformatted) is [" + fmp + "]");
answer = "Full Price, including 20% Tip: " + nf.format(fmp);
answerfield.setText(answer);
Log.i(tag, "onClick Complete");
}
catch(java.text.ParseException pe){
Log.i (tag ,"Parse exception caught");
answerfield.setText("Failed to parse amount?");
}
catch(Exception e){
Log.e (tag ,"Failed to Calculate Tip:" + e.getMessage());
e.printStackTrace();
answerfield.setText(e.getMessage());
}
}
}
);
}
以防万一它有助于继承xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Android Tip Calculator"/>
<EditText
android:id="@+id/mealprice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoText="true"/>
<Button
android:id="@+id/calculate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate Tip"/>
<TextView
android:id= "@+id/answer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""/>
</LinearLayout>