/********************************************************************************************
* 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。选择需要构造的变量或者控件
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));