一个应用程序,用户眼睛看到的都是有Activity来呈现的,查看API我们知道Activity有以下几个子类:AccountAuthenticatorActivity,ActivityGroup,AliasActivity, ExpandableListActivity, FragmentActivity, ListActivity, NativeActivity,这一堆子类都是在Activity的基础上进行了一下改进,方便使用而已,例如比较常用的就是ListActivity,简单的说它就是ListView和Activity的结合,当一个Activity上面显示的内容都是一条一条的话,就可以使用ListActivity了。
一、下面先看一下ListActivity的一个实例
代码1:
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class Test1 extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_test1);
List<String> list = new ArrayList<String>();
list.add("aaaaa");
list.add("bbbbb");
list.add("ccccc");
list.add("ddddd");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
}
}
前面说了,ListActivity可以理解为Activity和ListView的结合,所以上面的代码中可以不要setContentView这一句,也可以改成下面的这样执行效果一样
代码2:
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Test2 extends Activity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
listView = (ListView) findViewById(R.id.listView1);
List<String> list = new ArrayList<String>();
list.add("aaaaa");
list.add("bbbbb");
list.add("ccccc");
list.add("ddddd");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
}
}
当然,还需要在布局文件中添加一个id为listView1的ListView组件,执行效果如下:
当然第一段代码中的setContentView这一句也可以要,如果要的话,在布局文件中ListView组件自然不可少的,但是在设置id的时候就不能像其他普通组件一样使用@+id了,应该使用@id,而且除了ListView控件,还能在不居中加入其它的控件,看下面的代码。
代码3:
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class Test3 extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test3);
List<String> list = new ArrayList<String>();
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
list.add("dddd");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, list);
setListAdapter(adapter);
}
}