//设置优先采用的值
PreferenceManager.setDefaultValues(this, R.xml.default_values, false);
//动态的修改自定义custom title
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.text_title);
//Gallery:即图片浏览控件
//AutoCompleteTextView是实现动态匹配输入的内容。如google搜索引擎当输入文本时可以根据内容显示匹配的热门信息。
***封装ListView的Activity:ListActivity
ListActivity实际上是ListView和Activity的结合体。也就是说,一个ListActivity就是只包含一个ListView组件的Activity。在ListActivity类内部通过代码来创建ListView对象,因此,使用ListActivity并不需要使用XML布局文件来定义ListView组件。
如果在某些Activity中只包含一个ListView,使用ListActivity是非常方便的。可以通过ListActivity类的setListActivity方法来设置Adapter对象。该方法相当于调用了ListView类的setAdapter方法。
也可以通过ListActivity类的getListView方法获得当前ListActivity的ListView对象,并像操作普通的ListView对象一样操作ListActivity中的ListView对象。
//Adapter中notifyDataSetChanged的作用
对于Android开发来说处理一些界面需要和Adapter适配器打交道,虽然Android自带了一些比如ArrayAdapter但是大多数情况下无法满足我们需要,所以就要从BaseAdapter派生一个类满足我们特殊的需要。
首先我们可能重写getView(),通过LayoutInflater的inflate方法映射一个自己定义的Layout布局xml加载或从xxxView中创建。这些大家可能滚瓜烂熟了但是仍然很多Android开发者对于BaseAdapter中notifyDataSetChanged()方法不是很理解,notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容。
//程序入口点
类似于win32程序里的WinMain函数,Android自然也有它的程序入口点。它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activity节点下有这样一个intent-filter,其action为android.intent.action.MAIN,
Category指定为 android.intent.category.LAUNCHER,这就指明了这个activity是作为入口activity,系统查找到它后,就会创建这个activity实例来运行,若未发现就不启动(你可以把MAIN改名字试试)。
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
如果在AndroidManifest.xml中定义多个category.LAUNCHER,则在机器上会出现多个快捷方式。