Не удается разрешить вид символа. public void onClick (View view) не работает? - PullRequest
0 голосов
/ 02 ноября 2018

У меня, похоже, проблема с onClick (View view)

Вот скриншот моей андроид студии.

Я импортировал android.view.View. Вот мой код

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

    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
    totalTextView = (TextView) findViewById(R.id.totalTextView);
    percentageTxt = (EditText) findViewById(R.id.percentageTxt);
    numberTxt = (EditText) findViewById(R.id.numberTxt);


    Button calcBtn = (Button) findViewById(R.id.calcBtn);
    calcBtn.setOnClickListener(new View.onClickListener()){
          @Override
          public void onClick(View view){
            float percentage = Float.parseFloat(percentageTxt.getText().toString());
            float dec = percentage / 100;
            float total = dec * Float.parseFloat(numberTxt.getText().toString());
            totalTextView.setText(Float.toString(total));
        }
    }

}

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Существует опечатка с объявлением вашей анонимной функции. Также есть дополнительная закрывающая скобка.

calcBtn.setOnClickListener(new View.onClickListener())

должно быть

calcBtn.setOnClickListener(new View.OnClickListener()

После исправления объявления и закрытия скобок сообщите нам, если он все еще не находит параметр View.

0 голосов
/ 02 ноября 2018

Вы должны изменить это предложение:

Button calcBtn = (Button) findViewById(R.id.calcBtn);
    calcBtn.setOnClickListener(new View.onClickListener())/* -->this parenthesis should not be closed here*/ { 
          @Override
          public void onClick(View view){
            float percentage = Float.parseFloat(percentageTxt.getText().toString());
            float dec = percentage / 100;
            float total = dec * Float.parseFloat(numberTxt.getText().toString());
            totalTextView.setText(Float.toString(total));
        }
    }

должно быть:

Button calcBtn = (Button) findViewById(R.id.calcBtn);
        calcBtn.setOnClickListener(new View.onClickListener() { 
              @Override
              public void onClick(View view){
                float percentage = Float.parseFloat(percentageTxt.getText().toString());
                float dec = percentage / 100;
                float total = dec * Float.parseFloat(numberTxt.getText().toString());
                totalTextView.setText(Float.toString(total));
            }
        });
0 голосов
/ 02 ноября 2018

Это потому, что у вас есть дополнительная закрывающая скобка, неправильный синтаксис:

calcButton.setOnClickListener(new View.OnClickListener()) { // extra closing bracket ')'

И измените его на:

calcButton.setOnClickListener(new View.OnClickListener() {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...