将 Activity 拆分为多个类,其他类中如何用 findViewById()、getText()

作者:vkvi 来源:千一网络(原创) 日期:2017-3-6

初次开发安卓时,往往代码比较简单,全部写在一个 Activity.java 文件中即可。但是稍微有点代码量的项目,都不可能有所有代码写在一个 .java 文件中,那么我们就要拆开。

Java 的类没有 partial 这个关键词(C# 有),所以要拆开就必须拆开为不同的类。这个根据功能来拆即可。比如我们在项目中发现有太多的 EditText 都使用同一个 TextWatcher,且这个 TextWatcher 的代码量还不小,我们就把这个 TextWatcher 拆出来。

将 Activity 拆分为多个类

拆出来会遇到一些问题,比如我们在 TextWatcher 中使用了 findViewById 发现不能使用了,这是由于只有派生自 Activity 的类才能使用 findViewById,那是不是我们让新建的类 extends Activity 就可以了呢?显然不是,我们不是为了使编译通过就了事。

解决办法:

Activity 也可以是 View,只是调用方式不同。

错误做法:

网上有人说这样做:

这样做虽然运行时不报错,也取到了 EditText,但是取到的这个 EditText 并不是用户看到的这个 EditText,所以 getText().toString() 取到的全部是 EditText 的初始值,并不是用户实际的输入值。

你前面那位网友看了:如何声明样式表文件的编码

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
  • 1 楼:评论
    这种文章麻烦不要害人了
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他