程序设计实践第五周
上周主要任务
上周主要对整个程序的布局进行了更改,本来的设计是所有的界面都显示了广告栏,但是这样的设计是极其不友好的,广告栏会占据整个屏幕较大的空间,影响用户感受,因此在原有的基础上对整个APP进行了重新的布局设计更改,只在主页面进行广告栏的显示。除此之外,上周了解了安卓的数据库SQlite,本来是打算把音频数据存在数据库里,但是经过查阅资料后发现不推荐这种设计,因为音频数据过于庞大,不推荐存储在数据库。更适合的做法是把音频存在文件中,可以把文件的地址存在数据库中。需要用到相应的音频时,先从数据库查找到文件地址,然后再从文件中读取数据。
对于安卓中的activity,本来全部是采用的默认的standard模式,但是在测试中发现这样的话在进行多个活动的创建之后,用户点击回退键的时候只会回退到上个活动,这就造成有时候需要点击多次回退键才能够退出程序,这样的做法是极其不好的。在查阅资料了解到activity的创建模式的时候,我们把activity的创建模式由原来的standard模式更改为了singleTask模式,这样的话,如果在栈中已经存在了相应的activity实例,系统将不再创建新的activity,而是把栈中相应的activity调到栈顶的位置进行显示。除此之外,在添加了新的activity的时候由于忘记在AndroidManifest中注册,造成程序在运行的过程中闪退。这是一个需要注意的事情。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="bottom"
android:id="@+id/bottombar">
<TextView
android:id="@+id/main"
android:layout_weight="1"
android:layout_width="1dp"
android:layout_height="50dp"
android:text="推荐"
android:gravity="center"
android:onClick="onClick"/>
<TextView
android:id="@+id/listen"
android:layout_width="1dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="听力"
android:gravity="center"
android:onClick="onClick"/>
<TextView
android:id="@+id/spokenEnglish"
android:layout_width="1dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="口语"
android:gravity="center"
android:onClick="onClick"/>
<TextView
android:id="@+id/like"
android:layout_width="1dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="收藏"
android:gravity="center"
android:onClick="onClick"/>
</LinearLayout>
public void onClick(View view){
transaction = fm.beginTransaction();
switch (view.getId()){
case R.id.main:
break;
case R.id.listen:
if (frag2 == null) {
frag2 = new Frag2();
}
Intent intent = new Intent(this,frag2.getClass());
startActivity(intent);
break;
case R.id.spokenEnglish:
if (frag3 == null) {
frag3 = new Frag3();
}
intent = new Intent(this,frag3.getClass());
startActivity(intent);
break;
case R.id.like:
if (frag4 == null) {
frag4 = new Frag4();
}
intent = new Intent(this,frag4.getClass());
startActivity(intent);
break;
}
}
本周任务
本周将学习listview的使用以及相应的适配器。根据列表的适配器类型列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,其中ArrayAdapter最为简单,但是缺点就是它只能够展示一行文字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。而SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
listview有两种实例化的方法。
1. 第一种是在xml布局文件中先进行listview的添加,然后再java文件种使用。
<ListView
android:id="@+id/list_view"
android:layout_below="@+id/adv_pager"
android:layout_marginBottom="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue">
</ListView>
- 第二种是直接java代码实例化
ListView listview = new ListView(this);