ApiDemos类的onCreate方法的学习

public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		/**
		 * 在getIntent()中是这么写的【Return the intent that started this activity】
		 * 现在猜测应该是//FIXME 从别的activity回到这里的时候,可能会带回一个数据,也就是下面的path
		 */
		Intent intent = getIntent();
		String path = intent.getStringExtra("com.example.android.apis.Path");
		/**
		 * 这里的path就是上面可能通过intent带过来的,但是也有可能没有(启动程序的时候)
		 */
		if (path == null) {
			/**
			 * 为空置为空字符串
			 */
			path = "";
		}
		/**
		 * ListActivity的方法,源代码的注释是【Provide the cursor for the list
		 * view.】英文不好就不献丑了。进入内部发现他最终还是调用了【mList.setAdapter(adapter)】,
		 * 而这个adapter就是我们在下面传入进去的adapter 本方法类似于我们平常写的:
		 * mListView.setAdapter(mAdapter);
		 * 
		 * 满头汗水阅读了SimpleAdapter的源码注释:
		 * 
		 * @param 第1个参数context
		 *            是指与当前adapter有关的在运行中的view的上下文
		 * @param 第2个参数data
		 *            是一个由好多map构成的一个list
		 *            ,这个list中的每一个条目都相当于要在界面上面显示的一行,所有要显示的数据都存在所有的这些maps中,
		 *            而且每一个map都必须要包含第四个参数中的key值
		 *            getData()返回的数据中的一部分,其中就包括"title"【[{intent=Intent {
		 *            cmp=com.example.android.apis/.ApiDemos (has extras) },
		 *            title=Accessibility}, {intent=Intent {
		 *            cmp=com.example.android.apis/.ApiDemos (has extras) },
		 *            title=Animation}]】
		 * @param 第3个参数resource
		 *            是一个资源文件 ,资源文件中的id必须包括参数5中所提供的
		 * @param 第4个参数
		 *            指listview中的每一项中获取那个列 (字段)的值
		 * @param 第5个参数
		 *            指从第4个参数上面获得的数据要放在资源文件的那个id上面
		 */
		setListAdapter(new SimpleAdapter(this, getData(path), android.R.layout.simple_list_item_1, new String[] { "title" }, new int[] { android.R.id.text1 }));
		/**
		 * @param 第一部分
		 *            getListView()是ListActivity中的一个方法,用来获得内置的mListView。 在这个过程中,
		 *            他对这个listview进行了确认,如果在ListActivity中mListView是空的,他会调用
		 *            {@codesetContentView(com.android.internal.R.layout.list_content_simple);}
		 *            而在list_content_simple .xml文件中包括
		 *            {@codeandroid:id="@android:id/list"}
		 *            在ListActivity中是根据这个id来找到mListView的【mList =
		 *            {@code(ListView)findViewById(com.android.internal.R.id.list);】}
		 * 
		 * @param 第二部分
		 *            mListview.setTextFilterEnabled(true) 这个方法的作用是用来过滤选项的.
		 *            例如在软键盘上打出一个a,则会过滤掉除了a开头的所有选项.
		 */
		getListView().setTextFilterEnabled(true);
	}
getPixels中stride的理解 2015-04-02
从ApiDemos中学习Intent 2015-04-17

评论区