无法解析符号视图。公共无效onClick(View view)不起作用?

时间:2018-11-02 20:42:44

标签: android android-studio onclick

我似乎对onClick(查看视图)有问题

Here's the screenshot of my android studio.

我已经导入了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 :(得分:0)

那是因为您有一个额外的右括号,语法不正确:

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

并将其更改为:

calcButton.setOnClickListener(new View.OnClickListener() {

答案 1 :(得分:0)

您的匿名函数声明有错字。此外,还有一个额外的右括号。

calcBtn.setOnClickListener(new View.onClickListener())

应该是

calcBtn.setOnClickListener(new View.OnClickListener()

修复声明并关闭括号后,让我们知道它是否仍未找到View参数。

答案 2 :(得分:0)

您必须修改这句话:

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));
            }
        });