自定義ListActivity(一)
使用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(一)相关推荐
- ASP.NET Ajax 1.0 RC 'Sys' 未被定義 問題
ASP.NET Ajax 1.0 RC 'Sys' 未被定義 問題 您在依照筆者的影片安裝ASP.NET Ajax 1.0 RC 之後,可能會在測試時發現有底下的錯誤訊息: 請在 Web.Config ...
- mysql开启function,Mysql自定義函數(function)
語法 自定義函數也需要相應的要求,語法如下: CREATE FUNCTION(參數列表) RETURNS返回值類型 函數體 刪除: DROPFUNCTION 調用自定義函數語法: SELECT (pa ...
- 日期類型的定義6/14
習慣了看到"日期"欄位就定義為datetime型別 在參考他人的定義:char(6).char(8)後 再次閱讀MYSQL中有關型別敍述: DATE 一个日期.支持的范围是'100 ...
- dataTable.NET的column index的不同定義
dataTable.NET是一個jQuery的plug in 第三方的library, 用來實現web page中table的interaction controls, 另外最近有在用的還有Teler ...
- php中isdefin,在PHP中定義全局常量數組的最“優雅”方法是什么
6 The serialization and especially unserialization is pretty awkward. (On the other hand it's not qu ...
- 阿諾爾德的「常微分方程」中對「單參變換羣」的定義好像有問題
見阿諾爾德的「常微分方程」第四頁,他對「單參變換羣」的定義如下: 可是這裏有一個問題,就是,如果$M$是實數集,那麼根據我的博文 M的冪集的勢不大於_M_的所有排列形成的集合的勢 ,可知 M 到它自身 ...
- C# 配置文件 自定義結點
1. 對於配置自定義結點,需要繼承ConfigurationSection類. UrlsSection : ConfigurationSection 2. 配置文件中,需要如下引用: View C ...
- android 仿ios timepicker,android:TimePicker仿照IOS時間選擇器,可自定義選擇器
背景: 項目要求寫一個選擇器:不僅僅是單純的時間,還包括自定義部分. 搜了很久,搜出來只用一個自定義view.java類,再簡單封裝下的選擇器: 貼下源碼:public class PickerVie ...
- RDLC之自定義數據集二
標題:RDLC之自定義數據集二 作者:huangtao 時間:2008年7月12日 目的:學習通過ObjectDataSource控件提供數據 內容:呈現部門資料,如圖:deptinfo.jpg,De ...
最新文章
- 再见,Teamviewer!这款国产轻量级远程桌面软件超牛逼!
- python – 在循环中创建不同的变量名
- 服务器操作系统锁定设置,服务器操作系统锁定设置
- 上海大学计算机工程与科学学院官网,上海大学计算机工程与科学学院.PDF
- 静态库和动态库(转)
- 如何创建脱机数据库应用程序思路
- java B2B2C 仿淘宝电子商城系统-eureka 基础
- html打印标签多了一页,webpack打包多页应用,如何处理不同html页面(通过a标签)之间的跳转?...
- ll命令报错-bash: ll: command not found
- python 二分查找函数_Python基础14_递归函数,二分查找
- hihocoder-Week195-奖券兑换
- Qt翻译文件(.ts)的使用
- 瀚高数据库迁移工具常见问题
- 【图像压缩】基于余弦变换及霍夫曼编码实现jpeg压缩和解压附matlab代码
- yolov8 做图片分类和 ResNet Efficientnet 等常用分类网络的对比
- 在线全国计算机等级模拟题,全国计算机等级考试模拟试题一级.doc
- vue登录页面实现记住密码的操作
- 芯动联科在科创板IPO过会:拟募资10亿元,金晓冬为实际控制人
- 【pygame】之小球基础
- 主题 12:实践案例集锦之兜底方案设计
热门文章
- 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门
- 最酷网学习,如何做一个轮播
- 下列4组数据类型中 c语言允许的一组是,下列4组数据类型中,C语言允许的一组是...
- 设备信息之硬盘序列号、设备序列号、操作系统安装时间、IP地址
- 一本通1348:城市公交网建设问题
- 计算机网络谢希仁第七版课后习题答案(第三章)
- Three layer Neural Networks
- 2021-06-24CTF-攻防世界-WEB新手练习区(12题入门题)
- ubuntu20.04安装mysql8
- Android源码目录结构-4.0