Вот мой код, я не могу понять, почему он продолжает получать класс, ожидаемое перечисление интерфейса, и я всю жизнь не могу понять, почему. Сначала я подумал, что попал не на место, но не могу понять, где это могло быть. Это взято непосредственно из учебника колледжа, так как мы должны использовать код, воссоздать его и запустить, но мне кажется, что это старый код, предназначенный для более ранней версии студии Android. Я уверен, что не обращаю внимания на очевидное, но любая помощь будет очень признательна, заранее спасибо.
package com.example.chigh.tipcalculator;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.Seekbar.OnSeekBarChangeListener;
import android.widget.TextView;
import java.text.NumberFormat;
public class MainActivity extends Activity {
private static final NumberFormat currencyFormat =
NumberFormat.getCurrencyInstance();
private static final NumberFormat percentFormat =
NumberFormat.getPercentInstance();
private double billAmount = 0.0;
private double percent = 0.15;
private TextView amountTextView;
private TextView percentTextView;
private TextView tipTextView;
private TextView totalTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
amountTextView = (TextView) findViewById(R.id.amountTextView);
percentTextView = (TextView) findViewById(R.id.percentTextView);
tipTextView = (TextView) findViewById(R.id.tipTextView);
totalTextView = (TextView) findViewById(R.id.totalTextView);
tipTextView.setText(currencyFormat.format(0));
totalTextView.setText(currencyFormat.format(0));
EditText amountEditText =
(EditText) findViewById(R.id.amountEditText);
amountEditText.addTextChangedListener(amountEditTextWatcher);
SeekBar percentSeekBar =
(SeekBar) findViewById(R.id.percentSeekBar);
percentSeekBar.setOnSeekBarChangeListener(percentSeekBarListener);
}
private void calculate() {
percentTextView.setText(percentFormat.format(percent));
double tip = billAmount * percent;
double total = billAmount + tip;
tipTextView.setText(currencyFormat.format(tip));
totalTextView.setText(currencyFormat.format(total));
final SeekBar.OnSeekBarChangeListener seekBarChangeListener =
new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean
fromUser) {
percent = progress / 100.0;
calculate();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};
final TextWatcher amountEditTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int
after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
try {
billAmount = Double.parseDouble(s.toString()) / 100.0;
amountTextView.setText(currencyFormat.format(billAmount));
}
catch (NumberFormatException e) {
amountTextView.setText("");
billAmount = 0.0;
}
calculate();
}
@Override
public void afterTextChanged(Editable s) {
}
};
}
}
}
Я думаю, вам нужно добавить } после totalTextView.setText(currencyFormat.format(total)); и удалить последний } из активности.




} в конце вашей активностиimport android.app.Activity;Внесите некоторые изменения в свой код, например, activity вместо AppCompatActivity, а также удалите одну скобу для завивки.
public class MainActivity extends AppCompatActivity {
private static final NumberFormat currencyFormat =
NumberFormat.getCurrencyInstance();
private static final NumberFormat percentFormat =
NumberFormat.getPercentInstance();
private double billAmount = 0.0;
private double percent = 0.15;
private TextView amountTextView;
private TextView percentTextView;
private TextView tipTextView;
private TextView totalTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
amountTextView = (TextView) findViewById(R.id.amountTextView);
percentTextView = (TextView) findViewById(R.id.percentTextView);
tipTextView = (TextView) findViewById(R.id.tipTextView);
totalTextView = (TextView) findViewById(R.id.totalTextView);
tipTextView.setText(currencyFormat.format(0));
totalTextView.setText(currencyFormat.format(0));
EditText amountEditText =
(EditText) findViewById(R.id.amountEditText);
amountEditText.addTextChangedListener(amountEditTextWatcher);
SeekBar percentSeekBar =
(SeekBar) findViewById(R.id.percentSeekBar);
percentSeekBar.setOnSeekBarChangeListener(percentSeekBarListener);
}
private void calculate() {
percentTextView.setText(percentFormat.format(percent));
double tip = billAmount * percent;
double total = billAmount + tip;
tipTextView.setText(currencyFormat.format(tip));
totalTextView.setText(currencyFormat.format(total));
final SeekBar.OnSeekBarChangeListener seekBarChangeListener =
new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean
fromUser) {
percent = progress / 100.0;
calculate();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};
final TextWatcher amountEditTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int
after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
try {
billAmount = Double.parseDouble(s.toString()) / 100.0;
amountTextView.setText(currencyFormat.format(billAmount));
}
catch (NumberFormatException e) {
amountTextView.setText("");
billAmount = 0.0;
}
calculate();
}
@Override
public void afterTextChanged(Editable s) {
}
};
}
}
и я надеюсь, что вы определите свою активность в файле манифеста Android.
private void calculate() {нормально ли закрывается?