2014-10-28 78 views
0

我對應用程序開發相對陌生,對此處的操作非常困惑。請在回覆中非常清楚和非常詳細,非常感謝!OnClickListener和CheckBox錯誤

我得到錯誤的主機從下面的代碼塊:

//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」線和「公共無效」線,下面顯示了: -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); 

我想對這個問題的其他解決方案,包括刪除的視圖和onClickListener進口並使用CTRL + SHIFT + O的進口,但它沒有工作。就像我說的,請對你的答案進行非常具體的描述,因爲這是我的第一個應用程序,而且我在很大程度上完全不熟悉Eclipse。

回答

0

變化

chkCyl.setOnClickListener(new onClickListener(){ 

chkCyl.setOnClickListener(new OnClickListener(){ 

chkRect.setOnClickListener(new onClickListener(){ 

chkRect.setOnClickListener(new OnClickListener(){ 

setOnClickListener需要一個類實例來實現OnClickListener接口

+0

哇哦。所有的工作,它是大寫... 非常感謝你,你是一個救星! – 2014-10-28 19:52:28

0

也許它不能從保存的實例狀態中獲取變量?嘗試的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); 
 
      } 
 
     }});