【问题标题】:setText use resource for placeholdersetText 使用资源作为占位符
【发布时间】:2017-01-26 14:56:53
【问题描述】:

按照 Android Boot Camp 中的说明制作一个购买音乐会门票的应用程序。(非常基本)我的代码与书上的完全一样。 在代码的末尾,用户输入他们想要多少票,它应该输出他们选择的组的票的成本。最后一行是我遇到问题的地方。我不明白为什么它不工作,也没有找到任何解释为什么这是错误的以及如何解决它。

我查看了链接的答案,看看它是否有帮助,但没有。

以下代码来自 MainActivity.java

    public class MainActivity extends AppCompatActivity {
double costPerTicket = 79.99;
int numberOfTickets;
double totalCost;
String groupChoice;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final EditText tickets = (EditText)findViewById(R.id.txtTickets);
    final Spinner group = (Spinner)findViewById(R.id.txtGroup);
    Button cost = (Button)findViewById(R.id.btnCost);
    cost.setOnClickListener(new View.OnClickListener() {
        final TextView result = ((TextView)findViewById(R.id.txtResult));

        @TargetApi(Build.VERSION_CODES.N)
        @Override
        public void onClick(View v) {
            numberOfTickets = Integer.parseInt(tickets.getText( ).toString( ));
            totalCost = costPerTicket * numberOfTickets;
            DecimalFormat currency = new DecimalFormat("$###,###.##");
            groupChoice = group.getSelectedItem( ).toString( );
            result.setText("Cost for " + groupChoice + "is " + currency.format(totalCost));

        }
    }
    );

}

}

【问题讨论】:

  • 到底是什么问题?你有什么错误吗?
  • 我没有收到任何错误。当我运行程序时,我可以输入我想要的门票数量并选择我想要的团体,但是当我单击按钮显示门票费用时,应用程序关闭时显示“不幸的是,音乐会门票已停止。”
  • @vincentvii6 XML文件中的按钮设置onClick方法了吗?
  • @RamithDR 我相信是的。需要放入的xml文件是content_main.xml正确吗?

标签: android


【解决方案1】:

这里是修复“不要连接文本”警告的答案。 (请注意,我没有包含您的 string.xml 字符串,因为我不知道它们的名称。)

public class MainActivity extends AppCompatActivity {
    double costPerTicket = 79.99;
    int numberOfTickets;
    double totalCost;
    String groupChoice;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText tickets = (EditText)findViewById(R.id.txtTickets);
        final Spinner group = (Spinner)findViewById(R.id.txtGroup);
        Button cost = (Button)findViewById(R.id.btnCost);
        cost.setOnClickListener(new View.OnClickListener() {
                                    final TextView result = ((TextView)findViewById(R.id.txtResult));

                                    @TargetApi(Build.VERSION_CODES.N)
                                    @Override
                                    public void onClick(View v) {
                                        numberOfTickets = Integer.parseInt(tickets.getText( ).toString( ));
                                        totalCost = costPerTicket * numberOfTickets;
                                        DecimalFormat currency = new DecimalFormat("$###,###.##");
                                        groupChoice = group.getSelectedItem( ).toString( );
                                        String costForString = "Cost for " + groupChoice + "is " + currency.format(totalCost);
                                        result.setText(costForString);

                                    }
                                }
        );

    }
}

【讨论】:

  • 好的,我知道你做了什么,感谢所有的帮助。在大学的应用程序开发课程中,他们使用的书是针对旧版本的 android studio 的,所以我错过了翻译中的一些内容。
  • 我明白了。很高兴我可以帮助解决它:)
猜你喜欢
  • 2016-05-08
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 2013-01-03
相关资源
最近更新 更多