使用ListActivity可以很方便的幫助我們創建列表視圖,如果只需要一個全屏的listView視圖,那麼
setContentView(R.layout.XXX);也可以省略了,系統会自动帮我们构造出一个全屏的列表。但如果
需要使用ListActivity且視圖非純ListView的話,就需要為視圖創建一個佈局文件,不過需要注意幾個地方

下面會註釋出來

下面給出本例子的效果圖( TextView + ListView )

那麼該視圖的佈局main.xml, 注意ListView 的ID, listview用的是系統的自定義的id,查看ListActivity源碼onContentChanged裏面就有

mList = (ListView)findViewById(com.android.internal.R.id.list);

所以這裡的id是用list啦,不能用其他用其他會報錯的

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextView android:id="@+id/text"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@color/blue"android:text="here is title!!!!!!"/><ListView android:id="@id/android:list" android:layout_width="fill_parent"android:layout_height="0dip"android:layout_weight="1"android:drawSelectorOnTop="false"/></LinearLayout>

listview每一項的佈局lv_item.xml, 一個TextView和一個button,注意RelativeLayout的descendantFocusablility,阻止聚焦在後代,沒有這句list就不能點擊

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:descendantFocusability="blocksDescendants"><TextView android:id="@+id/tv_of_lv"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:textColor="@color/white"android:text="1212"/><Button android:id="@+id/btn_of_lv"android:layout_alignRight="@id/tv_of_lv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="DEL"/></RelativeLayout>

ListItem.java

public class ListItem {public final static String TAG = "ListItem";private final int tv_layout = R.id.tv_of_lv;private final int btn_layout = R.id.btn_of_lv;private Context context = null;private View view = null;private TextView tv = null;private Button btn = null;public ListItem(Context context) {// TODO Auto-generated constructor stubthis.context = context;this.init();}public Context getContext() {return context;}private void init() {LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);view = inflater.inflate(R.layout.lv_item, null);tv = (TextView) view.findViewById(tv_layout);btn = (Button) view.findViewById(btn_layout);btn.setOnClickListener(clickListener);}public View getView() {return view;}public void setTextViewTxt(String txt) {tv.setText(txt);}View.OnClickListener clickListener = new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(context, "click", 1000).show();}};}

最後就是mianActivity.java

public class MyRssActivity extends ListActivity {/** Called when the activity is first created. */@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);ListView lv = this.getListView();rssAdapter mAdapter = new rssAdapter(this);mAdapter.addItem("123123");mAdapter.addItem("465456");setListAdapter(mAdapter);}private class rssAdapter extends BaseAdapter {Context context = null;List<ListItem> mObjects = null;public rssAdapter(Context context) {this.context = context;mObjects = new ArrayList<ListItem>();}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mObjects.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn mObjects.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubif(convertView == null) {convertView = mObjects.get(position).getView();//new ListItem(context).getView();}else {}return convertView;//mObjects.get(position).getView();}public void addItem(String txt) {ListItem mItem = new ListItem(context);mItem.setTextViewTxt(txt);mObjects.add(mItem);}}}

自定義ListActivity(一)相关推荐

  1. ASP.NET Ajax 1.0 RC 'Sys' 未被定義 問題

    ASP.NET Ajax 1.0 RC 'Sys' 未被定義 問題 您在依照筆者的影片安裝ASP.NET Ajax 1.0 RC 之後,可能會在測試時發現有底下的錯誤訊息: 請在 Web.Config ...

  2. mysql开启function,Mysql自定義函數(function)

    語法 自定義函數也需要相應的要求,語法如下: CREATE FUNCTION(參數列表) RETURNS返回值類型 函數體 刪除: DROPFUNCTION 調用自定義函數語法: SELECT (pa ...

  3. 日期類型的定義6/14

    習慣了看到"日期"欄位就定義為datetime型別 在參考他人的定義:char(6).char(8)後 再次閱讀MYSQL中有關型別敍述: DATE 一个日期.支持的范围是'100 ...

  4. dataTable.NET的column index的不同定義

    dataTable.NET是一個jQuery的plug in 第三方的library, 用來實現web page中table的interaction controls, 另外最近有在用的還有Teler ...

  5. php中isdefin,在PHP中定義全局常量數組的最“優雅”方法是什么

    6 The serialization and especially unserialization is pretty awkward. (On the other hand it's not qu ...

  6. 阿諾爾德的「常微分方程」中對「單參變換羣」的定義好像有問題

    見阿諾爾德的「常微分方程」第四頁,他對「單參變換羣」的定義如下: 可是這裏有一個問題,就是,如果$M$是實數集,那麼根據我的博文 M的冪集的勢不大於_M_的所有排列形成的集合的勢 ,可知 M 到它自身 ...

  7. C# 配置文件 自定義結點

    1.  對於配置自定義結點,需要繼承ConfigurationSection類. UrlsSection : ConfigurationSection 2.  配置文件中,需要如下引用: View C ...

  8. android 仿ios timepicker,android:TimePicker仿照IOS時間選擇器,可自定義選擇器

    背景: 項目要求寫一個選擇器:不僅僅是單純的時間,還包括自定義部分. 搜了很久,搜出來只用一個自定義view.java類,再簡單封裝下的選擇器: 貼下源碼:public class PickerVie ...

  9. RDLC之自定義數據集二

    標題:RDLC之自定義數據集二 作者:huangtao 時間:2008年7月12日 目的:學習通過ObjectDataSource控件提供數據 內容:呈現部門資料,如圖:deptinfo.jpg,De ...

最新文章

  1. 再见,Teamviewer!这款国产轻量级远程桌面软件超牛逼!
  2. python – 在循环中创建不同的变量名
  3. 服务器操作系统锁定设置,服务器操作系统锁定设置
  4. 上海大学计算机工程与科学学院官网,上海大学计算机工程与科学学院.PDF
  5. 静态库和动态库(转)
  6. 如何创建脱机数据库应用程序思路
  7. java B2B2C 仿淘宝电子商城系统-eureka 基础
  8. html打印标签多了一页,webpack打包多页应用,如何处理不同html页面(通过a标签)之间的跳转?...
  9. ll命令报错-bash: ll: command not found
  10. python 二分查找函数_Python基础14_递归函数,二分查找
  11. hihocoder-Week195-奖券兑换
  12. Qt翻译文件(.ts)的使用
  13. 瀚高数据库迁移工具常见问题
  14. 【图像压缩】基于余弦变换及霍夫曼编码实现jpeg压缩和解压附matlab代码
  15. yolov8 做图片分类和 ResNet Efficientnet 等常用分类网络的对比
  16. 在线全国计算机等级模拟题,全国计算机等级考试模拟试题一级.doc
  17. vue登录页面实现记住密码的操作
  18. 芯动联科在科创板IPO过会:拟募资10亿元,金晓冬为实际控制人
  19. 【pygame】之小球基础
  20. 主题 12:实践案例集锦之兜底方案设计

热门文章

  1. 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门
  2. 最酷网学习,如何做一个轮播
  3. 下列4组数据类型中 c语言允许的一组是,下列4组数据类型中,C语言允许的一组是...
  4. 设备信息之硬盘序列号、设备序列号、操作系统安装时间、IP地址
  5. 一本通1348:城市公交网建设问题
  6. 计算机网络谢希仁第七版课后习题答案(第三章)
  7. Three layer Neural Networks
  8. 2021-06-24CTF-攻防世界-WEB新手练习区(12题入门题)
  9. ubuntu20.04安装mysql8
  10. Android源码目录结构-4.0