ListActivity简单的说就是ListView和Activity的结合,跟ListView和Activity组合实现的没有什么很大的差别,主要是比较方便。但在实现时,有几点要注意。
1、ListActivity可以不用setContentView(R.layout.main),它默认是LIstView占满屏。
2、如果想在屏幕中显示其他控件,如文本框和按钮之类,可以采用如下方法:
a、代码中添加:setContentView(R.layout.main)
b、在 main.xml 文件中,添加一个LIstView控件,和一个 TextView 控件,注意它们 id 必须为"@id/android:list"、 "@id/android:empty";前一个表示匹配的ListView,后一个表示若LIstView没有内容则显示的提示
以上转自:Android之 ListActivity 的使用和在 ListView中添加图片文字
使用:
1.创建一个类用来存储需要跳转的Activity的类字节码和类名
* 2.创建数据源
* 3.在ListView的点击事件中进行跳转
* 4.给ListView配置Adapter
全部代码
package intentrequest.luuuzi.com.intentrequest;
import android.app.ListActivity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
/**
* ListActivity简单的说就是ListView和Activity的结合,
* 跟ListView和Activity组合实现的没有什么很大的差别,主要是比较方便。但在实现时,有几点要注意。
* 1、ListActivity可以不用setContentView(R.layout.main),它默认是LIstView占满屏。
* 2、如果想在屏幕中显示其他控件,如文本框和按钮之类,可以采用如下方法:
* a、代码中添加:setContentView(R.layout.main)
* b、在 main.xml 文件中,添加一个LIstView控件,和一个 TextView 控件,
* 注意它们 id 必须为"@id/android:list"、"@id/android:empty";
* 前一个表示匹配的ListView,后一个表示若LIstView没有内容则显示的提示
*
* 使用:1.创建一个类用来存储需要跳转的Activity的类字节码和类名
* 2.创建数据源
* 3.在ListView的点击事件中进行跳转
* 4.给ListView配置Adapter
*/
public class MainListActivity extends ListActivity {
//第2步
ClassForName[] datas={
new ClassForName(SourceLookActivity.class,"网络源码查看器")};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//第4步
ArrayAdapter<ClassForName> adapter;
adapter=new ArrayAdapter<ClassForName>(this,android.R.layout.simple_list_item_1,datas);
setListAdapter(adapter);
}
//第3步
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//拿到点击的item的类
ClassForName classForName= (ClassForName) l.getItemAtPosition(position);
//跳转到该Activity中去
startActivity(new Intent(this,classForName.cls));
}
//.第1步
class ClassForName {
private Class<?> cls;
private String name;
public ClassForName(Class<?> cls, String name) {
this.cls = cls;
this.name = name;
}
//重写该方法让item显示name,而不让其显示字节码
@Override
public String toString() {
return name;
}
}
}