2016-08-08 97 views
1

当我在OnClickListener内访问我的变量时,它向我显示错误。从内部类访问变量

下面是一个代码:

EditText hight=(EditText)findViewById(R.id.hight); 
     EditText wight=(EditText)findViewById(R.id.wight); 
     Button calc=(Button) findViewById(R.id.calculate); 
     TextView result=(TextView) findViewById(R.id.result); 

     calc.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Double h=Double.valueOf(hight.getText().toString()); 
       Double w=Double.valueOf(wight.getText().toString()); 

       h=h/100; 

回答

0

试试这个:

final EditText hight,wight; 
    final Button calc; 
    final TextView result; 


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

     hight=(EditText)findViewById(R.id.hight); 
     wight=(EditText)findViewById(R.id.wight); 
     calc=(Button) findViewById(R.id.calculate); 
     result=(TextView) findViewById(R.id.result); 

     calc.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Double h=Double.valueOf(hight.getText().toString()); 
       Double w=Double.valueOf(wight.getText().toString()); 

       h=h/100; 
+0

工作感谢的人! – mashudmuhd

0

您试图访问只需要标记最后,如果你想在一个内部类使用它们的变量。

 final EditText hight=(EditText)findViewById(R.id.hight); 
     final EditText wight=(EditText)findViewById(R.id.wight); 
     final Button calc=(Button) findViewById(R.id.calculate); 
     final TextView result=(TextView) findViewById(R.id.result); 

     calc.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Double h=Double.valueOf(hight.getText().toString()); 
       Double w=Double.valueOf(wight.getText().toString()); 

       h=h/100; 
+0

不工作仍然显示我的错误 – mashudmuhd

0
final EditText hight=(EditText)findViewById(R.id.hight); 
final  EditText wight=(EditText)findViewById(R.id.wight); 

Button calc=(Button) findViewById(R.id.calculate); 
     TextView result=(TextView) findViewById(R.id.result); 

不管你打算在内部类访问,你必须申报这些项目的决赛。