Java Android折扣应用程序未运行
我正在为android制作一个简单的折扣应用程序,但我的应用程序没有运行,希望你们能帮助我找出它的问题。Java Android折扣应用程序未运行,java,android,Java,Android,我正在为android制作一个简单的折扣应用程序,但我的应用程序没有运行,希望你们能帮助我找出它的问题。 我是android开发新手,所以可能我做了很多错事,下面是我的代码 现在我只是在处理RadioButton部分,我点击按钮,比如说10%,然后它将显示正确保存的金额和总数 import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; impo
我是android开发新手,所以可能我做了很多错事,下面是我的代码 现在我只是在处理RadioButton部分,我点击按钮,比如说10%,然后它将显示正确保存的金额和总数
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.*;
public class MainActivity extends Activity {
private double listedPrice;
private int discountPrecentID;
private RadioGroup discount;
private double discountPrecent;
// private RadioButton discountPrecent;
private TextView savedAmount;
private TextView payAmount;
private EditText userInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userInput = (EditText) findViewById(R.id.editText1);
listedPrice = Double.parseDouble(userInput.getText().toString());
savedAmount = (TextView) findViewById(R.id.textView7);
payAmount = (TextView) findViewById(R.id.textView8);
discount = (RadioGroup) findViewById(R.id.radioGroup1);
// SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar1);
// seekBar.setOnSeekBarChangeListener(seekBarListener);
}
public void onClick(View v) {
discountPrecentID = discount.getCheckedRadioButtonId();
// discountPrecent = (RadioButton) findViewById(discountPrecentID);
switch (discountPrecentID) {
case R.id.radio0:{
discountPrecent = 0.10;
savedAmount.setText("$" + listedPrice * discountPrecent);
payAmount.setText("$"
+ (listedPrice - (listedPrice * discountPrecent)));
break;
}
case R.id.radio1:{
discountPrecent = 0.25;
savedAmount.setText("$" + listedPrice * discountPrecent);
payAmount.setText("$"
+ (listedPrice - (listedPrice * discountPrecent)));
break;
}
case R.id.radio2:{
discountPrecent = 0.50;
savedAmount.setText("$" + listedPrice * discountPrecent);
payAmount.setText("$"
+ (listedPrice - (listedPrice * discountPrecent)));
break;
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这很可能是你的问题
listedPrice = Double.parseDouble(userInput.getText().toString());
用户没有机会在onCreate()
中输入带有此代码的内容,因此除非您有硬编码的内容,否则您将获得NumberFormatException
。用户有机会输入某个内容后,需要将该代码放入onClick()
或其他事件中
您还应该执行一些错误检查,例如将其放入try/catch
中
try
{
listedPrice = Double.parseDouble(userInput.getText().toString());
}
catch (NumberFormatException e)
{
// do something if invalid double
}
在这里发帖时,你需要清楚地说明什么是/没有按照预期工作,以及你的问题是什么。此外,如果你的应用程序崩溃,那么logcat中会有输出,你需要发布它,这样我们就可以很容易地看到问题所在
Eclipse没有说您有任何问题,因为这是一个运行时错误,这意味着Eclipse在编译时没有看到任何错误。就Eclipse所知,这意味着您的语法是正确的,但您的逻辑是不正确的。什么是有效的/无效的?你被困在哪里了?不知道我是如何从一个诚实的问题中得到-2个代表的?我花了很多时间写这篇文章,人们只是给我负面的评价,什么也没说?我很难过。我没有投反对票,但我敢猜测这是因为你没有解释你的问题。当我运行这个时,它一直在说“不幸的是,折扣计算器停止了。”logCat说双重是一个问题,但是eclipse没有说我的代码有任何问题,你的logcat中会有一个异常…发布它。谢谢你的建议!我想我现在已经解决了这个问题。