listView布局自定义和数据填充,以及结合tabhost使用
1,tabhost定义选项
LayoutInflater.from(this).inflate(R.layout.pressure,
host.getTabContentView(), true);
// 加载tab选项字体布局
LayoutInflater inflater = this.getLayoutInflater();
View view1 = inflater.inflate(R.layout.tabview1, null);
View view2 = inflater.inflate(R.layout.tabview2, null);
View view3 = inflater.inflate(R.layout.tabview3, null);
View view4 = inflater.inflate(R.layout.tabview4, null);
View view5 = inflater.inflate(R.layout.tabview5, null);
View view6 = inflater.inflate(R.layout.tabview6, null);//自定义view填充到选项卡中,改变选项卡风格
host.addTab(host.newTabSpec("7days").setIndicator(view1)
.setContent(R.id.pressure));
host.addTab(host.newTabSpec("15days").setIndicator(view2)
.setContent(R.id.pressure));
host.addTab(host.newTabSpec("30days").setIndicator(view3)
.setContent(R.id.pressure));
host.addTab(host.newTabSpec("90days").setIndicator(view4)
.setContent(R.id.pressure));
host.addTab(host.newTabSpec("180days").setIndicator(view5)
.setContent(R.id.pressure));
host.addTab(host.newTabSpec("360days").setIndicator(view6)
.setContent(R.id.pressure));
setContentView(host);//设置host为主布局
2,在tabhost选项中设置一直线布局为为显示视图,而布局中填充,列表选项和一个listview
<?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"
android:id="@+id/pressure">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal">
<TextView android:layout_width="140dip" android:layout_height="wrap_content"
android:text="@string/tab1" android:textColor="@color/frontcolor"
android:textSize="20sp"/>
<TextView android:layout_width="150dip" android:layout_height="wrap_content"
android:text="@string/tab2" android:textColor="@color/frontcolor"
android:textSize="20sp"/>
<TextView android:layout_width="50dip" android:layout_height="wrap_content"
android:text="@string/tab3" android:textColor="@color/frontcolor"
android:textSize="20sp"/>
<TextView android:layout_width="150dip" android:layout_height="wrap_content"
android:text="@string/tab4" android:textColor="@color/frontcolor"
android:textSize="20sp"/>
<TextView android:layout_width="220dip" android:layout_height="wrap_content"
android:text="@string/tab5" android:textColor="@color/frontcolor"
android:textSize="20sp"/>
<TextView android:layout_width="120dip" android:layout_height="wrap_content"
android:text="@string/tab6" android:textColor="@color/frontcolor"
android:textSize="20sp"/>
</LinearLayout>
<ListView android:id="@+id/pressureData" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1" />
</LinearLayout>
tab选项卡中view视图布局
3,设置listview的布局
<?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="horizontal">
<TextView android:id="@+id/tx1" android:layout_width="140dip"
android:layout_height="wrap_content" android:text=""
android:textColor="@color/white" android:textSize="20sp"/>
<TextView android:id="@+id/tx2" android:layout_width="150dip"
android:layout_height="wrap_content" android:text=""
android:textColor="@color/white" android:textSize="20sp"/>
<TextView android:id="@+id/tx3" android:layout_width="50dip"
android:layout_height="wrap_content" android:text=""
android:textColor="@color/white" android:textSize="20sp"/>
<TextView android:id="@+id/tx4" android:layout_width="150dip"
android:layout_height="wrap_content" android:text=""
android:textColor="@color/white" android:textSize="20sp"/>
<TextView android:id="@+id/tx5" android:layout_width="220dip"
android:layout_height="wrap_content" android:text=""
android:textColor="@color/white" android:textSize="20sp"/>
<TextView android:id="@+id/tx6" android:layout_width="120dip"
android:layout_height="wrap_content" android:text=""
android:textColor="@color/white" android:textSize="20sp"/>
</LinearLayout>
主视图下的一个listview中填充的小view
4,获取要填充的数据填充到listview中去
//自定义适配器
public class PressureAdapter extends BaseAdapter {
Context mContext;
JSONArray jsonObj;
public PressureAdapter(Context mContext, JSONArray jsonObj) {
super();
this.mContext = mContext;
this.jsonObj = jsonObj;
}
@Override
public int getCount() {
return jsonObj.length();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = getLayoutInflater();
View view = mInflater.inflate(R.layout.pressure_data, null);
TextView tx1 = (TextView) view.findViewById(R.id.tx1);//获取listview布局中的view子项ID并且赋值
TextView tx2 = (TextView) view.findViewById(R.id.tx2);
TextView tx3 = (TextView) view.findViewById(R.id.tx3);
TextView tx4 = (TextView) view.findViewById(R.id.tx4);
TextView tx5 = (TextView) view.findViewById(R.id.tx5);
TextView tx6 = (TextView) view.findViewById(R.id.tx6);
try {
tx1.setText(jsonObj.getJSONObject(position).getString(
"systolic"));
tx2.setText(jsonObj.getJSONObject(position).getString(
"diastolic"));
tx3.setText(jsonObj.getJSONObject(position).getString("pulse"));
tx4.setText(jsonObj.getJSONObject(position).getString(
"bodyTemperature"));
tx5.setText(jsonObj.getJSONObject(position).getString(
"dateTime"));
tx6.setText(jsonObj.getJSONObject(position).getString("tcText"));
} catch (JSONException e) {
e.printStackTrace();
}
return view;
}
}
附带:
list = (ListView) findViewById(R.id.pressureData);
host.setCurrentTab(0); //设置当前被选中选项
list.setAdapter(createAdapter("7"));
host.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {//选项切换事件
if (host.getCurrentTab() == 0) {
list.setAdapter(createAdapter("7"));
}
if (host.getCurrentTab() == 1) {
list.setAdapter(createAdapter("15"));
}
if (host.getCurrentTab() == 2) {
list.setAdapter(createAdapter("30"));
}
if (host.getCurrentTab() == 3) {
list.setAdapter(createAdapter("90"));
}
if (host.getCurrentTab() == 4) {
list.setAdapter(createAdapter("180"));
}
if (host.getCurrentTab() == 5) {
list.setAdapter(createAdapter("360"));
}
}
});
分享到:
相关推荐
<ModuleID>4</ModuleID> <User>sarena76@naver.com</User> <Passwd></Passwd> <MsgSeq>0000000001</MsgSeq> <DeviceToken></DeviceToken> <VoipToken></VoipToken> <FcmToken>fgFEl367nCg:APA91bFMguX-4...
<type>apklib</type> <version>xxx</version> </dependency> 用法 将一个新的名称空间属性添加到您的根布局容器。 xmlns:app="http://schemas.android.com/apk/res-auto" 就像其他任何EditText小部件一样,添加并...
<type>apklib</type> </dependency> <dependency> <groupId>com.daimajia.easing</groupId> <artifactId>library</artifactId> <version>1.0.1</version> <type>apklib</type> </dependency>...
usage: apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***> -a,--alias <alias> keystore entry alias. -e,--epassword <***> keystore entry password. -f,--from <loc> new ...
Linux上使用SQL*Plus有一个相当不方便的...<br>答案是安装一个小工具:Uniread<br><br>安装Uniread的要求<br><br>1.Linux系统上必须已经安装了Perl<br>2.安装Uniread之前先安装 readline,Term,IO这3个工具。<br><br>
使用 `mksdcard -l <label> <size> <sdFilePath>` 命令创建 SD 卡, `<label>` 是 SD 卡的标签,`<size>` 是 SD 卡的大小,`<sdFilePath>` 是 SD 卡的文件路径。 启动模拟器 使用 `emulator -avd <name>` 命令启动...
1root,2安装apk并运行,3打开as进入terminal输入adb connect 192.168.1.xxx(运行软件后的地址),http://blog.csdn.net/ln840434235/article/details/53022221如果找不到adb命令,则看这篇文章...
<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk <dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer 如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法...
TinyCC编译器 <br>发布时间:2007-07-09 12:28 网友评论 0 条 <br>软件大小:419kb<br>软件类别:编译开发<br>点击次数:1<br>软件语言:英文<br>运行环境:Win9X,Me,NT,2000,XP,2003,Unix<br>软件评级:4<br>更新...
Android 解析 XML 文件升级 APK 的方法 Android 解析 XML 文件升级 APK 的方法是一种常见的应用场景,在实际开发中,我们经常需要从服务器端获取 XML 文件,然后解析该文件以获取所需的信息,并将其应用于 APK 的...
<br>res\xml\network_and_internet.xml res\drawable\ic_ethernet_cell.xml <br>res\values\strings.xml res\xml\ethernet_settings.xml <br>res\xml\ethernet_static_ip.xml <br>src\...
usage: apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***> -a,--alias <alias> keystore entry alias. -e,--epassword <***> keystore entry password. -f,--from ...
<<<<<<>>>>>> 74b5821d0edd407b74087d33f303bd617a733ca6 Para poder utilizar este programa sera necesario descargar e instalar un archivo .apk en el dispositivo con el sistema operativo atras mencionado....
< artifactId>apk-parser</ artifactId> < version>2.6.10</ version> </ dependency> 从2.0版开始,apk解析器需要Java7。支持Java 6的最新版本是1.7.4。 用法 普通的方法是使用ApkFile类,该类包含获取...
可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流.<br>- 不需要服务器支持.<br>- 支持文件/文件夹的传送 (2.00版以上)<br>- 通讯数据采用 RSA/Blofish 加密 (2.00版以上)<br>- 十分小巧, 简单易用, ...
- **椭圆**:只需将`<shape>`标签更改为`<oval>`,所有点到中心的距离相等,形成一个圆形或椭圆形。 - **线**:使用`<line>`标签,指定`android:x1`、`android:y1`为起点,`android:x2`、`android:y2`为终点。 - ...
- `<zipalign>`:对APK进行优化,提高性能和用户体验。 4. **执行构建**:在命令行中导航到你的项目根目录,然后运行`ant release`或`ant debug`命令。这会触发`build.xml`中的构建过程,分别生成优化过的release...
压缩文档: java -jar spanner.jar zip <path> <file> ...查看apk信息: java -jar apk <file> 查看apk包名: java -jar info <path | file> 查看MD5: java -jar md5 <file> 解压缩文档主要解决在linux下的乱码问题