2016-05-21 3 views
-1

Я пытался сделать один калькулятор в навигационном ящике, но он дает мне ошибку, и я не смог вычислить.Невозможно рассчитать в навигационном ящике

Как устранить эту ошибку?

public class SNFFragment extends Fragment { 

    public SNFFragment() { 
} 

EditText edit1, edit2; 
Button btn; 
android.widget.TextView TextView; 
double value1, value2; 
double value3; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.snf_layout, container, false); 

    edit1 = (EditText) view.findViewById(R.id.edit1); 
    edit2 = (EditText) view.findViewById(R.id.edit2); 
    btn = (Button) view.findViewById(R.id.btn); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (edit1.getText().toString().isEmpty()) { 
       edit1.setError("Enter value1"); 
      } else if (edit2.getText().toString().isEmpty()) { 
       edit2.setError("Enter value2"); 
      } else { 
       calculate(); 
      } 

     } 

     private void calculate() { 
      try { 
       value1 = Double.valueOf(edit1.getText().toString()); 
       value2 = Double.valueOf(edit2.getText().toString()); 

       Log.d("value1", String.valueOf(value1)); 
       Log.d("value2", String.valueOf(value2)); 

       value3 = (0.25 * value1 + value2 * 0.21 + 0.36); 

       //When the button is clicked, call the calculate method. 

       TextView.setText(String.format("Answer: %.2f", value3)); 
      } catch (NumberFormatException e) { 
       Log.d("value1", String.valueOf(value1)); 
       Log.d("value2", String.valueOf(value2)); 

       Log.d("Exception", String.valueOf(e)); 
      } 
     }); 
     return view; 
} 
+3

Какая ошибка вы получаете? Включите журнал ошибок. – ishmaelMakitla

+0

Вы должны переместить функцию 'calculate()' вне метода 'onCreateView', потому что это всего лишь вспомогательный метод в вашем классе SNFFragment. – ishmaelMakitla

+0

error Я получаю ошибку: (77, 9) error: класс, интерфейс или enum ожидается Ошибка: (78, 9) ошибка: класс, интерфейс или enum ожидается Ошибка: (79, 5) error: class , интерфейс или enum ожидается .. Каким должен быть вероятный код ... –

ответ

0

Я предлагаю вам переместить функцию calculate() за пределами функции обратного вызова onClickListener и вместо того, чтобы иметь его в качестве частной функции вашего SNFFragment, так что вы код выглядит следующим образом ::

public class SNFFragment extends Fragment { 

    public SNFFragment() {} 

EditText edit1, edit2; 
Button btn; 
android.widget.TextView TextView; 
double value1, value2; 
double value3; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.snf_layout, container, false); 

    edit1 = (EditText) view.findViewById(R.id.edit1); 
    edit2 = (EditText) view.findViewById(R.id.edit2); 
    btn = (Button) view.findViewById(R.id.btn); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (edit1.getText().toString().isEmpty()) { 
       edit1.setError("Enter value1"); 
      } else if (edit2.getText().toString().isEmpty()) { 
       edit2.setError("Enter value2"); 
      } else { 
       calculate(); 
      } 
     } 
    });  

    return view; 
} 
private void calculate() { 
      try { 
       value1 = Double.valueOf(edit1.getText().toString()); 
       value2 = Double.valueOf(edit2.getText().toString()); 

       Log.d("value1", String.valueOf(value1)); 
       Log.d("value2", String.valueOf(value2)); 

       value3 = (0.25 * value1 + value2 * 0.21 + 0.36); 

       //When the button is clicked, call the calculate method. 

       TextView.setText(String.format("Answer: %.2f", value3)); 
      } catch (NumberFormatException e) { 
       Log.d("value1", String.valueOf(value1)); 
       Log.d("value2", String.valueOf(value2)); 

       Log.d("Exception", String.valueOf(e)); 
      } 
    } 
} 

Пожалуйста, дайте его попробуйте и сообщите нам, если это поможет.

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