刚学Android,问一个小白问题

hanhuiyu2012 2014-06-26 03:17:29
在一个拨打电话的小程序里,主要代码如下:
public class MainActivity extends ActionBarActivity {

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

Button bt_dail=(Button) this.findViewById(R.id.bt_dail);

et_number=(EditText) this.findViewById(R.id.et_number);

bt_dail.setOnClickListener(new MyListener());

}

private class MyListener implements OnClickListener{


public void onClick(View v){


String number=et_number.getText().toString().trim();

if(TextUtils.isEmpty(number))
{
Toast.makeText(MainActivity.this,"号码不能为空",0).show();
return;
}

Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));

startActivity(intent);
}
}
我的问题是:打开应用程序后,首先应该执行的是onCreate()这个方法,输入号码之前private变量et_number应该为空,然后当输入号码的时候,这个et_number是怎么触发的随着你的输入而改变的呢?难道说每次改变输入,这句et_number=(EditText) this.findViewById(R.id.et_number)会被反复执行吗?不知道各位看懂我意思没,求大牛从面向过程的角度解释下哈!
...全文
113 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanhuiyu2012 2014-06-26
  • 打赏
  • 举报
回复
明白了,et_number和number不是一回事,et_number=(EditText) this.findViewById(R.id.et_number)这句只是把id赋给et_number,而et_number=(EditText) this.findViewById(R.id.et_number)才是真正的把当前text内的数字赋值给number。谢谢各位啊!
  • 打赏
  • 举报
回复
String number=et_number.getText().toString().trim(); 在你输入完之后,点击button按钮触发click事件,上面这句执行,得到你输入的号码。
avici_cpp 2014-06-26
  • 打赏
  • 举报
回复
et_number 是EditText的一个对象,在onCreate中通过et_number=(EditText) this.findViewById(R.id.et_number);赋值,因为onCreate执行一次,et_number也只被赋值一次。 输入号码时,et_number这个对象的属性mText会随着输入不断的改变(mText就是编辑框内输入的内容,类型为String)

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧