【问题标题】:OnClickListener and CheckBox ErrorsOnClickListener 和 CheckBox 错误
【发布时间】:2014-10-28 19:35:24
【问题描述】:

我对应用程序开发比较陌生,对在这里做什么感到很困惑。请在您的回复中非常清楚和非常详细,非常感谢!

我从以下代码块中收到大量错误:

//Blank out the appropriate blanks
    chkRect.setOnClickListener(new onClickListener() {
    @Override
    public void onClick(View v) {
        if (chkRect.isChecked()){
            chkCyl.setEnabled(false);
            txtDiameter.setText("0");
            txtDiameter.setEnabled(false);
        }
        else {
            chkRect.setEnabled(true);
            txtDiameter.setText("");
            txtDiameter.setEnabled(true);
        }
    }});

    chkCyl.setOnClickListener(new onClickListener(){
    @Override
    public void onClick(View v) {
        if (chkCyl.isChecked()){
            chkRect.setEnabled(false);
            txtHeight.setText("0");
            txtWidth.setText("0");
            txtHeight.setEnabled(false);
            txtWidth.setEnabled(false);
        }
        else {
            chkRect.setEnabled(true);
            txtHeight.setText("");
            txtWidth.setText("");
            txtHeight.setEnabled(true);
            txtWidth.setEnabled(true);
        }
    }});

在“onClickListener”行和“public void”行上,都会显示以下内容: -onClickListener 无法解析为类型。 (多行) - View 类型中的方法 setOnClickListener(View.onClickListener) 不适用于新的 onClickListener 参数。 - 方法“onClick(View v)”必须覆盖或实现超类型方法。

这是我的导入和变量声明:

import java.text.DecimalFormat;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;



public class MaterialCalculator extends ActionBarActivity implements View.OnClickListener{

public Spinner materialDD;
public CheckBox chkRect;
public CheckBox chkCyl;
//public Spinner shapeDD;
DecimalFormat d = new DecimalFormat("#");


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_material_calculator);

    materialDD = (Spinner) findViewById(R.id.materialDD);
    final CheckBox chkRect = (CheckBox) findViewById(R.id.chkRect);
    final CheckBox chkCyl = (CheckBox) findViewById(R.id.chkCyl);
    //shapeDD = (Spinner) findViewById(R.id.shapeDD);
    Button btnCalculate = (Button) findViewById(R.id.btnCalculate);
    Button btnClearAll = (Button) findViewById(R.id.btnClearAll);
    final EditText txtDiameter = (EditText) findViewById(R.id.txtDiameter);
    final EditText txtLength = (EditText) findViewById(R.id.txtLength);
    final EditText txtWidth = (EditText) findViewById(R.id.txtWidth);
    final EditText txtHeight = (EditText) findViewById(R.id.txtHeight);
    final EditText edtTxtTotprice = (EditText) findViewById(R.id.edtTxtTotprice);
    final EditText edtTxtWeight = (EditText) findViewById(R.id.edtTxtWeight);

我尝试了其他解决方案,包括删除 view 和 onClickListener 的导入并使用 ctrl+shift+O 导入,但没有成功。就像我说的那样,由于这是我的第一个应用程序,我对 Eclipse 一点也不熟悉,因此请非常具体地回答您的问题。

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    改变

    chkCyl.setOnClickListener(new onClickListener(){
    

    chkCyl.setOnClickListener(new OnClickListener(){
    

    chkRect.setOnClickListener(new onClickListener(){
    

    chkRect.setOnClickListener(new OnClickListener(){
    

    setOnClickListener 将实现OnClickListener 接口的类的实例作为参数

    【讨论】:

    • 哇哦。所有这些工作都被大写了......非常感谢,你是救生员!
    【解决方案2】:

    也许它无法从保存的实例状态中获取变量?尝试像这样在 onClick 侦听器之前定义变量:

    final CheckBox chkRect = (CheckBox) findViewById(R.id.chkRect);
    
    chkRect.setOnClickListener(new onClickListener() {
        @Override
        public void onClick(View v) {
            if (chkRect.isChecked()){
                chkCyl.setEnabled(false);
                txtDiameter.setText("0");
                txtDiameter.setEnabled(false);
            }
            else {
                chkRect.setEnabled(true);
                txtDiameter.setText("");
                txtDiameter.setEnabled(true);
            }
        }});
    
        final CheckBox chkCyl = (CheckBox) findViewById(R.id.chkCyl);
        chkCyl.setOnClickListener(new onClickListener(){
            @Override`enter code here`
            public void onClick(View v) {
                if (chkCyl.isChecked()){
                    chkRect.setEnabled(false);
                    txtHeight.setText("0");
                    txtWidth.setText("0");
                    txtHeight.setEnabled(false);
                    txtWidth.setEnabled(false);
                }
                else {
                    chkRect.setEnabled(true);
                    txtHeight.setText("");
                    txtWidth.setText("");
                    txtHeight.setEnabled(true);
                    txtWidth.setEnabled(true);
                }
            }});

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      相关资源
      最近更新 更多