Java Eclipse Android训练营-如何修改Ferry应用程序?
导师要求我们创建一个简单的应用程序,允许用户输入门票数量,并按18美元的固定费率计算这两个地点的成本。我们已被要求外包和研究,以完成应用程序的修改;所以去玛丽角的票要20美元,去星岛的票要30美元。我的代码如下Java Eclipse Android训练营-如何修改Ferry应用程序?,java,android,eclipse,Java,Android,Eclipse,导师要求我们创建一个简单的应用程序,允许用户输入门票数量,并按18美元的固定费率计算这两个地点的成本。我们已被要求外包和研究,以完成应用程序的修改;所以去玛丽角的票要20美元,去星岛的票要30美元。我的代码如下 public class MainActivity extends Activity { double costPerTicket=18.00; int numberOfTickets; double totalCost;
public class MainActivity extends Activity
{
double costPerTicket=18.00;
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 OnClickListener()
{
final TextView result=((TextView)findViewById(R.id.txtResult));
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost=costPerTicket * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
});
}
您可以为每个不同的票证创建
TicketType
对象。大概是这样的:
public class TicketType {
//single ticket price, depending on JAVA version, you could try making price final
private double price;
//Total spent
private double moneySpent;
public TicketType(double price) {
this.price = price;
}
//buy tickets, returns how much it cost
public double buy(int amount){
double priceForAmount = amount*price;
moneySpent+=priceForAmount;
return priceForAmount;
}
//return how much money was spent during objects lifetime
public double getMoneySpent(){
if(moneySpent==0) ???;
else
return moneySpent;
}
Spinner mySpinner = (Spinner)findViewById(R.id.YOUR_SPINNER_ID);
mySpinner.setAdapter(adapter);
简单地说:
//probably create some class variables:
public class MyActivity extends Activity {
TicketType capeMarie = new TicketType(18.0);
TicketType startIsland = new TicketType(30.0);
//something to switch between selection
RadioGroup selectedType;
...
onClick(View v){
//parse number
TicketType selectedTicketType = null;
int id = selectedType.getCheckedRadioButtonId();
switch(id){
case CAPE_MARIE_ID:
selectedTicketType =capeMarie;
break;
case ...:...break;
}
double price = selectedTicketType.buy(parsedNumber);
//show price to user
}
首先在布局中声明一个微调器。。。声明微调器后,将转到位于values文件夹下的Strings.xml文件。。。就在这里,你添加了一个这样的数组
<string-array name="LocationArray">
<item>Cape Marie</item>
<item>Star Island</item>
</string-array>
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.LocationArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
public class MainActivity extends Activity
{
double costPerTicket=18.00;
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);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.LocationArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner mySpinner = (Spinner)findViewById(R.id.YOUR_SPINNER_ID);
mySpinner.setAdapter(adapter);
cost.setOnClickListener(new OnClickListener()
{
final TextView result=((TextView)findViewById(R.id.txtResult));
@Override
public void onClick(View v)
{
String SpinnerValue = mySpinner.getSelectedItem().toString();
if(SpinnerValue.equals("Cape Marie")){
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost = 20 * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
if(SpinnerValue.equals("Star Island")){
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost = 30 * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
});
}
适配器代码如下所示
<string-array name="LocationArray">
<item>Cape Marie</item>
<item>Star Island</item>
</string-array>
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.LocationArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
public class MainActivity extends Activity
{
double costPerTicket=18.00;
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);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.LocationArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner mySpinner = (Spinner)findViewById(R.id.YOUR_SPINNER_ID);
mySpinner.setAdapter(adapter);
cost.setOnClickListener(new OnClickListener()
{
final TextView result=((TextView)findViewById(R.id.txtResult));
@Override
public void onClick(View v)
{
String SpinnerValue = mySpinner.getSelectedItem().toString();
if(SpinnerValue.equals("Cape Marie")){
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost = 20 * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
if(SpinnerValue.equals("Star Island")){
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost = 30 * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
});
}
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.LocationArray,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
所以在你的代码中应该是这样的
<string-array name="LocationArray">
<item>Cape Marie</item>
<item>Star Island</item>
</string-array>
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.LocationArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
public class MainActivity extends Activity
{
double costPerTicket=18.00;
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);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.LocationArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner mySpinner = (Spinner)findViewById(R.id.YOUR_SPINNER_ID);
mySpinner.setAdapter(adapter);
cost.setOnClickListener(new OnClickListener()
{
final TextView result=((TextView)findViewById(R.id.txtResult));
@Override
public void onClick(View v)
{
String SpinnerValue = mySpinner.getSelectedItem().toString();
if(SpinnerValue.equals("Cape Marie")){
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost = 20 * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
if(SpinnerValue.equals("Star Island")){
// TODO Auto-generated method stub
numberOfTickets=Integer.parseInt(tickets.getText().toString());
totalCost = 30 * numberOfTickets;
DecimalFormat currency=new DecimalFormat("$###,###.##");
groupChoice=group.getSelectedItem().toString();
result.setText("Total cost for "+groupChoice +" is " +currency.format(totalCost));
}
});
}
公共类MainActivity扩展活动
{
双倍成本=18.00;
国际机票号码;
总成本加倍;
字符串组选择;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终EditText票证=(EditText)findViewById(R.id.txt票证);
最终微调器组=(微调器)findViewById(R.id.txtGroup);
按钮成本=(按钮)findViewById(R.id.btnCost);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.LocationArray,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器mySpinner=(微调器)findViewById(R.id.YOUR\u微调器\u id);
设置适配器(适配器);
cost.setOnClickListener(新的OnClickListener()
{
最终TextView结果=((TextView)findViewById(R.id.txtResult));
@凌驾
公共void onClick(视图v)
{
字符串SpinnerValue=mySpinner.getSelectedItem().toString();
if(SpinnerValue.equals(“Cape Marie”)){
//TODO自动生成的方法存根
numberOfTickets=Integer.parseInt(tickets.getText().toString());
总成本=20*张票;
DecimalFormat currency=新的DecimalFormat($######,####.#“);
groupChoice=group.getSelectedItem().toString();
result.setText(““+groupChoice+”的总成本为“+currency.format(totalCost));
}
if(SpinnerValue.equals(“星岛”)){
//TODO自动生成的方法存根
numberOfTickets=Integer.parseInt(tickets.getText().toString());
总成本=30*张票;
DecimalFormat currency=新的DecimalFormat($######,####.#“);
groupChoice=group.getSelectedItem().toString();
result.setText(““+groupChoice+”的总成本为“+currency.format(totalCost));
}
});
}
你的问题到底是什么?基本上,如果你的代码正常工作,你可以去CodeReview。我不知道我是否应该检查你的代码,因为那样我会给其他人树立一个坏榜样。代码和应用程序工作得很好,但是对于每个选定的汽车渡轮成本,它被设置为18美元,我们需要实施两个,而不是totalCost=18,我们需要进行调整这是一个非常清楚的问题,我们被要求研究和外包人员,网站能够做到这一点,这不是这个网站的目的,我打算在另一个问题上发布答案…请阅读它,如果需要更多的帮助,不要害怕问…谢谢你完美和理解,谢谢你的回答回答这个问题,花时间帮助我和世界各地的其他人进行编程,很有魅力;-)有没有另一种建议方式可以将你的知识和帮助落实到我的代码中,因为要求是一个旋转器,有两个位置:玛丽角和星岛;玛丽角等于每张票20美元,星岛30美元。用户en记下车票数量,从微调器中选择位置,按下按钮计算总成本?当我得到代表票时,我也会投票给你,因为你的答案也很好;-)哇,是像你这样的人让这个世界变得更美好;-)竖起大拇指,非常感谢,祝你有一个美好的一天。如果需要更多的帮助,很高兴能为你提供帮助别害怕问…干杯!!我已经实现了,做得很好,很好,我非常感谢你的帮助现在我明白我需要if声明,并有一个我们还没有被教过的ArrayAdapter…再次感谢你非常感谢。当我的代表上台时,我将添加VotesHaven来帮助@CaseyT先生任何进一步的帮助或g通过一些代码,请随意提问…干杯!!:D