当前位置: 首页 > 面试题库 >

Android折扣应用未运行

南门正业
2023-03-14
问题内容

我正在为Android开发一个简单的折扣应用程序,但是我的应用程序未运行,希望你们能帮助我确定问题出在哪里。
我是android开发的新手,所以也许我做错了很多事情,这是我的代码。

现在,我只是在RadioButton部分上工作,在其中单击Button,假设是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()因此除非您进行了硬编码,否则您将获得NumberFormatExceptiononClick()用户有机会输入内容后,您需要将该代码置于一个或其他事件中。

您还应该进行一些错误检查,例如将其放入try/catch

try
{
    listedPrice = Double.parseDouble(userInput.getText().toString());
}
catch (NumberFormatException e)
{
    // do something if invalid double
}

在此处发布时,您需要清楚说明预期的工作/不正常以及问题所在。另外,如果您的应用程序崩溃了,那么logcat中将有输出,您需要发布该消息,以便我们可以轻松地查看问题出在哪里。

Eclipse没说您有任何问题,因为这是一个运行时错误,这意味着Eclipse在编译时没有发现任何错误。就Eclipse所知,这意味着您的语法正确,但是您的逻辑却不正确。



 类似资料:
  • 通常,折扣是从产品的正常销售价格中扣除的金额或百分比。 这是以低价或低价出售产品的方式。 您可以指定产品的折扣,如以下步骤中所定义 - Step 1 - 转到“ Store ,然后单击“ Configuration 。 Step 2 - 点击管理税率和类型的Taxes链接。 Step 3 - 转到TAX TYPES选项卡,然后单击Add a tax type链接。 Step 4 - 税收类型对税率

  • 如果使用我的优惠券类型,我将尝试折扣购物车中最便宜的商品: 折扣金额非常奇怪-无论我怎么尝试,它都不会达到我期望的价值。起初我以为这是一个百分比折扣,但我希望这是一个固定的数额。我试着在网站的其他地方运行我的“获取最低价格”功能,当最低值项为11.95时,它返回1.195,所以我知道该部分工作正常。但是265.60的总折扣是23.90——我就是不明白! 我只想在购物车里买到最低价的商品,并打折。

  • 限时折扣 限时折扣:设置商品限时折扣。通过限时折扣,商家可以选定一款或多款商品,在一段时间内以指定的折扣出售。以更优的价格吸引消费者,产生更多的销量。 一、添加限时折扣: 点击添加限时折扣 添加活动名称、活动有效期(开始日期和结束日期)、价格保留方式(抹去角和分或者抹去分)、选择商品(选择参与活动的商品)、在下方列表可看到添加的活动商品具体信息(商品名称、价格、库存、折扣和删除)。 添加成功后在后

  • 问题内容: 我们有一种产品,由PayPal付款。前往贝宝之前,请先申请折扣。我们希望创建一个系统,使人们可以输入礼品券代码以获取免费产品(即100%折扣),或输入一些代码以获得特定折扣(即SAVE10-享受10%折扣)。 有些代码只能用于一种用途(即礼券),有些则可以多次使用-即SAVE10。有些也会有有效期。 将使用MySQL和php组合在一起。 外面有没有人已经做过并将这些放在一起?还是知道一

  • 我想尝试定义下面的公式来计算旧价格和新价格之间的关系,并在文本小部件上显示它,但当我想在双变量中使用它时,却出现了这样的错误:“只有静态成员可以在初始化器中访问”,这就是我想要做的:

  • 问题内容: 这是我有趣的问题。当应用未运行时,来自GCM的Android通知未显示标题和内容( 仅 显示应用名称,并且在单击时打开MainActivity)。 但是,当应用程序打开时,它会 成功 显示标题和内容。可能是什么问题?它运行没有问题,我没有进行任何更改。 表现: GcmService.java: 谢谢。 在应用程序运行时记录。 应用未运行时记录。 问题答案: 找到了问题。我使用的是Pla