实现按钮点击响应事件的问题?1)Button button = (Button)findViewById(R.id.submit)这个类型转换,一旦submit不是按钮,而是其它类型控件(确实存在)。这种强制类型转换,岂非风险很大?有没有更安全的类型转换方法?2)如何实现按钮点击响应事件?3)如何打个trace?这些trace是输出在哪看到?仅是模拟器上看到吗?还是手机上也能看到?
package com.demo.android.bmi;import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;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 buttons click
Button button = (Button)findViewById(R.id.submit);
if (null != button)
{
button.setOnClickListener(calcBMI);
}
else
{
//此如何写个trace("button指针为空!")?
}
}
}//此如何写个button的点击响应函数calcBMI?
class calcBMI
{
}
package com.demo.android.bmi;import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;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 buttons click
Button button = (Button)findViewById(R.id.submit);
if (null != button)
{
button.setOnClickListener(calcBMI);
}
else
{
//此如何写个trace("button指针为空!")?
}
}
}//此如何写个button的点击响应函数calcBMI?
class calcBMI
{
}
解决方案 »
- 不能检测到avd
- android 软件盘 往上推控件效果 求解
- 如果读取格式化数据从文件中?
- android 支持gprs或者3G上网的底层代码是哪里?
- android 3.0之前的版本怎么染多个按钮同时按下
- *****新手急求!sdk到底是什么?不要用一个名词解释另一个名词
- listview中item为gridview,gridview中显示本地图片,图片一多就出现OOM啦,如何解决?求大婶
- 刚刚接触android 有几点十分迷惑 希望大侠支招
- 关于收藏网页、标题、图片、网址的实现
- 入门菜鸟关于 xml layout 部局文件 mian.xml,请高手进入指点
- 桌面电脑上的红帽Linux 和 嵌入式Linux 的问题
- Edittext中用onKeyDown()为什么不响应?
button的点击事件响应是用Listner实现的,就是实现相应的接口,然后设置给BUtton就行了.
2.button.setOnClickListener(new OnClickListener{
public void onClick(View view){
// 处理案件响应事件
}
});
3.track,给你个网址自己看吧。http://blog.csdn.net/xiaominghimi/archive/2010/12/29/6105212.aspx
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;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 buttons click
Log.v("calcBMI", "listen");
Button button = (Button)findViewById(R.id.submit);
if (null != button)
{
Log.v("calcBMI", "button is found");
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0)
{
Log.v("calcBMI", "clicked");
}
});
}
else
{
Log.v("calcBMI", "button is null");
}
}
}
呵呵!终于看到了log。
package com.demo.android.bmi;import java.text.DecimalFormat;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
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 buttons click
Button button = (Button)findViewById(R.id.submit);
if (null != button)
{
Log.v("tip", "button is found");
button.setOnClickListener(calcBMI);
}
else
{
Log.v("tip", "button is null");
}
}
class submitListenner implements OnClickListener
{
@Override
public void onClick(View arg0)
{
Log.v("submit onClick : ", "begin");
DecimalFormat nf = new DecimalFormat("0.00");
EditText fieldheight = (EditText)findViewById(R.id.height);
EditText fieldweight = (EditText)findViewById(R.id.weight);
Log.v("height : ", fieldheight.getText().toString());
Log.v("weight : ", fieldweight.getText().toString());
double height = Double.parseDouble(fieldheight.getText().toString())/100;
double weight = Double.parseDouble(fieldweight.getText().toString());
double BMI = weight / (height * height);
TextView result = (TextView)findViewById(R.id.result);
result.setText("You BMI is " + nf.format(BMI));
//Give health advice
TextView fieldsuggest = (TextView)findViewById(R.id.suggest);
if (BMI > 25)
{
fieldsuggest.setText(R.string.advice_heavy);
}
else if (BMI < 20)
{
fieldsuggest.setText(R.string.advice_light);
}
else
{
fieldsuggest.setText(R.string.advice_average);
}
Log.v("submit onClick : ", "end");
}
} private submitListenner calcBMI = new submitListenner();
}