Android学习笔记(15)————android工程中新建Class注意事项

本文详细介绍了如何在Java中创建一个非继承Activity的类,并在该类中使用已在main.xml中定义的控件。通过复写构造函数来初始化所需对象,避免了直接继承Activity带来的布局查找限制。特别强调了如何构建Context对象以及在构造函数中使用自定义类的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/********************************************************************************************
* author:conowen@大钟
* E-mail:conowen@hotmail.com
* http://blog.youkuaiyun.com/conowen
* 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。

********************************************************************************************/


有时候为了代码更加清晰明了,需要在一个新的java文档中新建一个class文件(不是继承activity的),但是新建的这个class文件需要用到在main.xml文件定义好的控件之类的,这样的话,可以在新建的class文件中,复写这个控件的构造函数(constructor)即可。


步骤:(举个例子)

1、先在class里面定义好新建的控件或者变量

AutoCompleteTextView autoinput = null; Context ct=null;

2、然后在新建的class文件中,右键------>source-------->Generate Constructor using Fields。选择需要构造的变量或者控件


public MyTextWatcher(Context ct, AutoCompleteTextView autoinput) { super(); this.ct = ct; this.autoinput = autoinput; }
3、这样就可以用这些控件了。因为新建的class文件不是继承与activity,没有设定布局文件,当然就不能通过findviewbyid来找寻控件了,所以要通过这种方法。


4、另外代码中构造的

Context ct=null; 是Context类型。

如构建ArrayAdapter时,第一个参数为Context,若是在activity中,可以为this,但是在新建的class中,没有继承activity,所以要通过构造方法,构建一个Context ct。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(ct, android.R.layout.simple_dropdown_item_1line, str);


5、调用这个类的时候,在原来的activity中,如下调用即可。参数即为两个需要在新建class中构造的参数。为context和AutoCompleteTextView类型。MyTextWatcher为新建class的类名。

autoinput.addTextChangedListener(new MyTextWatcher(MyDictionaryActivity.this,autoinput));




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值