所以这是我的第一个真正的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>
答案 0 :(得分:1)
在Eclipse中使用adb logcat
,DDMS或DDMS透视图来查找导致崩溃的Java堆栈跟踪。
答案 1 :(得分:0)
您可能忘记在AndroidManifest.xml中注册您的活动名称。对于初学者来说,这是一个非常常见的错误。 AndroidManifest.xml应该是这样的:
<activity android:name=".TipCalculator"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>