2017-02-09 58 views
-1

目前我正在製作計算用戶票價的項目。計算器將從起始站點到目的地每3個站添加5個。目前我正在使用if其他語句。任何想法如何制定算法?使用ifelse將花費太多的代碼。火車票價計算.Android

目前這段代碼是我到目前爲止有:

MainActivity.java代碼

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

    // uicontrols 
    Spinner spStart; 
    Spinner spDestination; 
    Button btnsubmit; 

    //class members 
    ArrayAdapter<String> adapterBusinessType; 

    // local members 
    String sdestination,sstart; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     spStart = (Spinner) findViewById(R.id.spStart); 
     spDestination = (Spinner) findViewById(R.id.spDestination); 

     btnsubmit=(Button)findViewById(R.id.submit); 
     btnsubmit.setOnClickListener(this); 

     // Initialize and set Adapter 

     // Country Item Selected Listener 
     spStart.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapter, View v, 
            int position, long id) { 
       // On selecting a spinner item 
       sstart = adapter.getItemAtPosition(position).toString(); 

       // Showing selected spinner item 
       Toast.makeText(getApplicationContext(), 
        "Selected Country : " + sstart, Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
     // Business Type Item Selected Listener 
     spDestination.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapter, View v, 
            int position, long id) { 
       // On selecting a spinner item 
       sdestination = adapter.getItemAtPosition(position).toString(); 

       // Showing selected spinner item 
       Toast.makeText(getApplicationContext(), 
        "Bussiness Type : " + sdestination, Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
    } 

    @Override 
    public void onClick(View v) { 
     TextView textView = (TextView)findViewById(R.id.textView); 
     TextView textView2 = (TextView)findViewById(R.id.textView2); 
     if(sstart.equals("Recto") && sdestination.equals(("Legarda"))){ 
        textView.setText("Single Journey : 15"); 
        textView2.setText("Beep Balance : 13"); 

       } 
     else if(sstart.equals("Recto") && sdestination.equals(("Pureza"))){ 
        textView.setText("Single Journey : 15"); 
        textView2.setText("Beep Balance : 13"); 

       } 
     else if(sstart.equals("Recto") && sdestination.equals(("V Mapa"))){ 
       textView.setText("Single Journey : 15"); 
       textView2.setText("Beep Balance : 13"); 

      } 

     else if(sstart.equals("Recto") && sdestination.equals(("J.Ruiz"))){ 
        textView.setText("Single Journey : 20"); 
        textView2.setText("Beep Balance : 13"); 

       } 
     else if(sstart.equals("Recto") && sdestination.equals(("Gilmore"))){ 
      textView.setText("Single Journey : 20"); 
      textView2.setText("Beep Balance : 13"); 

     } 
     else if(sstart.equals("Recto") && sdestination.equals(("Betty Go Belmonte"))){ 
      textView.setText("Single Journey : 20"); 
      textView2.setText("Beep Balance : 13"); 

     } 
     else if(sstart.equals("Recto") && sdestination.equals(("Araneta Center Cubao"))){ 
      textView.setText("Single Journey : 20"); 
      textView2.setText("Beep Balance : 13"); 

     } 
     else if(sstart.equals("Recto") && sdestination.equals(("Anonas Station"))){ 
      textView.setText("Single Journey : 25"); 
      textView2.setText("Beep Balance : 13"); 

     } 
     else if(sstart.equals("Recto") && sdestination.equals(("Katipunan"))){ 
      textView.setText("Single Journey : 25"); 
      textView2.setText("Beep Balance : 13"); 

     } 
     else if(sstart.equals("Recto") && sdestination.equals(("Santolan"))){ 
      textView.setText("Single Journey : 25"); 
      textView2.setText("Beep Balance : 13"); 
     } 
    } 
} 
+0

PLZ後你有什麼到目前爲止已經試過? –

+0

請看我的答案謝謝你somuch –

+0

歡迎來到Stackoverflow。請使用您提供的任何其他信息(如代碼或日誌)編輯原始問題。本網站是針對特定編程問題的問答。如果需要,您可以隨時刪除您寫的答案。 –

回答

0

取而代之的是巨大的其他/如果你能看到多少個站點有起點之間目的地並且以這種方式計算票價。

int numStations = getNumStations(); 
int fare = (numStations/3) * 5 

希望這有助於