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

这篇博客介绍了在Android开发中,如何在不继承Activity的独立Class中使用main.xml定义的控件。作者建议通过复写构造函数来实现控件的引用。步骤包括在Class中定义变量,使用源代码生成构造函数,注意在非Activity类中构造Context参数,以及在原Activity中正确调用新建Class的实例。

摘要生成于 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、付费专栏及课程。

余额充值