Ожидается интерфейс класса Android

Вот мой код, я не могу понять, почему он продолжает получать класс, ожидаемое перечисление интерфейса, и я всю жизнь не могу понять, почему. Сначала я подумал, что попал не на место, но не могу понять, где это могло быть. Это взято непосредственно из учебника колледжа, так как мы должны использовать код, воссоздать его и запустить, но мне кажется, что это старый код, предназначенный для более ранней версии студии 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) {

}
};

}

}
}
private void calculate() { нормально ли закрывается?
Aswin P Ashok 22.05.2018 10:48

Я думаю, вам нужно добавить } после totalTextView.setText(currencyFormat.format(total)); и удалить последний } из активности.

Aswin P Ashok 22.05.2018 10:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
2
158
2

Ответы 2

  1. удалите один } в конце вашей активности
  2. добавить import android.app.Activity;
  3. отметьте этот ответ как решенный

Внесите некоторые изменения в свой код, например, 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.

Другие вопросы по теме