2012-02-15 2 views
0

В моем следующем коде. Я пытаюсь назначить другую строку «Оператор» каждой кнопке (плюс, минус, вычесть), а затем ссылаться на них в равном случае с помощью оператора if. Я попытался определить theOperator в плюсе, но я просто узнал, что разные случаи не могут видеть друг друга. Как определить оператор за пределами блока коммутатора, но все же он определен для идентификатора Add?Как обратиться к кнопке вне блока переключателя

package rechee.cool; 

import android.app.Activity; 

import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class HelloAndroidActivity extends Activity { 
    /** Called when the activity is first created. */ 
    public EditText display; 

    double counter1 = 0; 
    double counter2 = 0; 
    String theOperator = new String("+"); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     // Associate the button variable with the xml reference 

     display = (EditText) findViewById(R.id.editText1); 
    } 

    String display1 = display.getText().toString(); 

    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.bOne: 
       display.append("1"); 
       break; 
      case R.id.bTwo: 
       display.append("2"); 
       break; 
      case R.id.bThree: 
       display.append("3"); 
       break; 
      case R.id.bFour: 
       display.append("4"); 
       break; 
      case R.id.bFive: 
       display.append("5"); 
       break; 
      case R.id.bSix: 
       display.append("6"); 
       break; 
      case R.id.bSeven: 
       display.append("7"); 
       break; 
      case R.id.bEight: 
       display.append("8"); 
       break; 
      case R.id.bNine: 
       display.append("9"); 
       break; 
      case R.id.bZero: 
       display.append("0"); 
       break; 
      case R.id.bPoint: 
       display.append("."); 
       break; 
      case R.id.bClear: 
       display.setText(""); 
       break; 
      case R.id.bAdd: 
       double displayValue = Double.parseDouble(display1); 
       counter1 += displayValue; 
       display.setText(""); 
       //String theOperator= new String("+"); 
       break; 
      case R.id.bEqual: 
       //display.setText(Double.toString(counter2)); 
       //counter1 = 0; 
       // Tried using a switch for theOperator, but 1.6 doesn't allow string switch. So I'm going to use if else statements instead. 
       if (theOperator == "+") { 

       } 

     } 
     //case "+": 
     //break; 

    } 

} 
+0

В коммутаторе, когда вы нарушаете оператор каждого случая, выполняется только один случай, что вы имеете в виду, используя что-то из одного в другом случае? – kosa

+0

Я хочу, чтобы проверить, что если нажата кнопка равенства, проверьте, была ли нажата другая кнопка (плюс, умножить, разделить или вычесть). Я еще не добавил код остальных этих кнопок. И тогда у меня есть отдельный код, если бы была нажата каждая из этих кнопок. – recheej

+0

Кроме того, что вы сделали вместо утверждений дела и почему добавление бесполезно? – recheej

ответ

0

Может быть так же просто, как добавить флаг, который включается, если оператор нажат.

Смежные вопросы