package bmi.com.oppo.www;import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.View;
import android.view.View.OnClickListener;
import java.text.DecimalFormat;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class BMI extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//listen for button clicks
Button button = (Button)findViewById(R.id.submit);
button.setOnClickListener(calcBMI);
}
private OnClickListener calcBMI = new OnClickListener(){
public void onClick(View v){
DecimalFormat nf = new DecimalFormat("0.00");
EditText fieldheight = (EditText)findViewById(R.id.height);
EditText fieldweight = (EditText)findViewById(R.id.weight);
double height = Double.parseDouble(fieldheight.getText().toString())/100;
double weight = Double.parseDouble(fieldweight.getText().toString());
double BMI = weight/(height*height);
//result
TextView result = (TextView)findViewById(R.id.result);
result.setText("your BMI is : " + BMI/*nf.format(BMI)*/);
//suggest
TextView suggest = (TextView)findViewById(R.id.suggest);
if(BMI > 25)
suggest.setText(R.string.advice_heavy);
else if(BMI < 20)
suggest.setText(R.string.advice_light);
else
suggest.setText("ok");
}
};
}
这个是Android的一段代码,
private OnClickListener calcBMI = new OnClickListener(){
public void onClick(View v){
}
}
这个是怎么理解的,是不是创建了OnClickListener类的一个对象calcBMI ?后面的括号里面的内容算什么?里面的方法onClick呢?
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//listen for button clicks
Button button = (Button)findViewById(R.id.submit);
button.setOnClickListener(new OnClickListener(){
public void onClick(View v){
DecimalFormat nf = new DecimalFormat("0.00");
EditText fieldheight = (EditText)findViewById(R.id.height);
EditText fieldweight = (EditText)findViewById(R.id.weight);
double height = Double.parseDouble(fieldheight.getText().toString())/100;
double weight = Double.parseDouble(fieldweight.getText().toString());
double BMI = weight/(height*height);
//result
TextView result = (TextView)findViewById(R.id.result);
result.setText("your BMI is : " + BMI/*nf.format(BMI)*/);
//suggest
TextView suggest = (TextView)findViewById(R.id.suggest);
if(BMI > 25)
suggest.setText(R.string.advice_heavy);
else if(BMI < 20)
suggest.setText(R.string.advice_light);
else
suggest.setText("ok");
}
};
);
}
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
public void onClick(View v){
}
} new一个匿名实现类赋值给OnClickListener 接口引用calcBMI
new AcationListener(){
需要实现actionPerformed方法一样
}