实现按钮点击响应事件的问题?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
{
}
解决方案 »
- 大神们帮忙看下程序,与服务器端数据交互问题
- 如何在照片上添加文字水印(经纬度)
- Activity中停止服务报错,请大侠指点。。。
- tcp如何组包
- 请教android手机应用层开发中用到的xml 解析器?
- 怎么看一个程序的框架以及逻辑呢
- Listview不能上下滚动了???
- 【求助】富文本中如果包含图片该怎么办?
- setclicklistener出现java.lang.nullpointerexception错误怎么解决啊
- 安卓小白 哪个大神能救救我 已经弄好久了 AS创建个hello world都不行
- 桌面电脑上的红帽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();
}