昨天上午复习了ListView,写了两个练手的单选和多选,看了SimpleAdapter,它比BaseAdapter在新建时多了两个参数,new String90{};new int[]{}。
虽然listView对于现在理解了的我来说挺简单的,但是两个小实验还是写了整整半天的时间。
感觉代码的第一重境界就是看的懂,理解的了意思;第二重就是能够在较少提示的情况下完成代码。第一重到第二重的距离看上去很短,其实也还是有点难度的,需要大量的练习和时间。就是我们高中时的题海战术一样,又像如果在公司中常常用到这个组件会用的很熟练一样,都是熟能成巧啊。
所以以后有时间的话,可以更多的选择写写基本的东西呢,也挺有快感的哈。不知道这种想法是不是很不成熟啊,哈哈。
昨天中午收到了宁波银行的面试通知,导致整个下午都在看面经啊啥的,没有很好的学习。通知1:15分开始的面试。3点多才开始,今天一整天的时间也大致都没了Zzz.
一起去面试的小伙伴毕业设计都做好了,然后就很体现我毕设的紧迫性。挺有压力的,比较紧张。适度压力吧,前置压力。
今天顿时有种,”我要日以继夜的写代码” 的觉悟。
晚上看了ViewPager,根据慕课网上的(微信60.主界面)代码把它第一个小实验ViewPager实现了,第二个View还没跑通有点问题。
我的毕设的第一个界面就要实现这种Tab导航栏。可以借鉴这一块,有个难点是还不了解它能不能指向4个Activity,而不是四个View,感觉Activity的话,写起来会比较有条理一点哈。明天去看看有没有关于ViewPager的书吧,仔细看一下哈。
我来回忆一下哈:
最简单的xml中,它只写了ViewPager的组件,就和最普通的TextView一样写。
因为要用到Fragment,所以写了TabFragment类。这里的类其实就是实现一个TextVIew。突然想到,能不能让这个类真正的实现一个完整的Fragment呢,Fragmenthe Activity也没有功能上的差别是吧?对啊,本来就是应该用Fragment而不是Activity的!那怎么实现要每一Tab对应一个Fragment呢。想想,想想。
然后在MainActivity中,定义了ViewPager,存Fragment的ArrayList:mTabs,每个Tab页的名称 mTitles,ViewPagers的适配器mAdapter。
private ViewPager mViewPager; private List<Fragment> mTabs = new ArrayList<Fragment>();//把Fragment添加到这个list中 private String[] mTitles = new String[] { "First Fragment !", "Second Fragment !", "Third Fragment !", "Fourth Fragment !" }; private FragmentPagerAdapter mAdapter;
今天还学到一点就是,慕课上的老师,它的代码没有像书上一样,把一股脑的所有viewPager的取值啦,Adapter的实现啦全部写在onCreat方法中,而是在onCreat方法中调用了initView(),initData()方法,然后再到方法中去实现。虽然没有本质的区别,但明显这是一个更好的代码习惯。
initView()很简单:
private void initView() { mViewPager = (ViewPager) findViewById(R.id.id_viewpager); }
initData()方法分两块,第一块是根据Tab页的名称,来决定Fragment中的TextView的值;第二块是实现Adapter。
private void initDatas() { for (String title : mTitles) { TabFragment tabFragment = new TabFragment();//给Fragment页面传TITLE的值。 Bundle bundle = new Bundle(); bundle.putString(TabFragment.TITLE, title); tabFragment.setArguments(bundle); mTabs.add(tabFragment); } mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { public int getCount() { return mTabs.size(); } public Fragment getItem(int position) { return mTabs.get(position); } }; }
哎呀,想到了,在 for (String title : mTitles){...}这一块当中,根据不同的String名称t跳转到不同的Fragment,然后每个Fragment各自对应他们的layout.xml不就可以了么。明天去试下呀呀呀!
今天晚上闭馆回来的路上,下着小雨,我还丢了伞。一起走的婷婷突然对我说,“你有没有听过一句话,目标明确的人走起路来都比较快呢。”