用RadioButton实现选项卡效果
先看图
<RadioGroup android:id="@+id/query_type" android:layout_width="fill_parent" android:layout_height="wrap_content" android:checkedButton="@+id/query_type_fuzzy" android:orientation="horizontal" android:gravity="center_vertical|center_horizontal"> <RadioButton android:id="@+id/query_type_fuzzy" android:text="fuzzy" /> <RadioButton android:id="@+id/query_type_precise" android:text="precise" /> </RadioGroup> <TableLayout android:id="@+id/test_tabel_1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TableRow android:gravity="center_vertical|center_horizontal"> <Button android:id="@+id/button_ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_ok"/> <Button android:id="@+id/button_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_cancel"/> </TableRow> </TableLayout> <TableLayout android:id="@+id/test_tabel_2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:visibility="gone"> <TableRow android:gravity="center_vertical|center_horizontal"> <TextView android:text="page 2" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> </TableLayout>
RadioGroup rg = (RadioGroup).findViewById(R.id.query_type); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub Log.i(TAG, "RadioGroop: " + checkedId); TableLayout tl1 = (TableLayout)dialog.findViewById(R.id.test_tabel_1); TableLayout tl2 = (TableLayout)dialog.findViewById(R.id.test_tabel_2); if(R.id.query_type_fuzzy == checkedId){ tl1.setVisibility(TableLayout.VISIBLE); tl2.setVisibility(TableLayout.GONE); }else if(R.id.query_type_precise == checkedId){ tl2.setVisibility(TableLayout.VISIBLE); tl1.setVisibility(TableLayout.GONE); } } });
转载,用于积累知识
做项目时,可以用到这个开源里的技术 。
关键字: easymf
作者:wuhua
空间:htt://wuhua.3geye.net
转载请保留上面的信息(请尊重知识产品)谢谢
EasyMF 简易J2ME开发框架
EasyMF --- Easy Mobile Framework
目标: 设计一个简单,稳定,可快速开发的J2ME开发框架。
一.说明:
此框架的意图是解决手机软件开发中常遇到,并且可以通用话的问题。
旨在提高无线应用程序的开发效率
二.EasyMF 能做什么
1.简化UI设计
2.RMS的简化操作
3.简单的日志框架
4.简单的联网框架
5.通用工具的设计
6.一些图形相关的特效
三.EasyMF 的功能列表
1.UI 框架
2.日志框架
3.RMS框架
4.通用工具框架
5.图形相关
6.一堆有用的DEMO
四.EasyMF 的设计原理
1.UI的设计原理
UI是所有应用程序的核心。 这些核心在PC上的变动性比较固定,而由于手机屏幕,
运算能力 等差异,会导致设计一个手机软件大部分时间都花在UI层的设计上,业务
逻辑层往往比较少,这也就是80/20原则吧。
如果有一个可以组装的UI的出现,将大大减少应用程序的开发时间,而EasyMF UI
层就是为了这个而设计的。
2.日志框架设计成尽量的简单,并且有效的记录下用户想需要记录的日志
3.联网框架,简化Http的联网,并十分的符合中国网络环境的东西。
4.工具集合
5.图形图片处理
6.RMS的简易操作
上面是基本结构
源代码 http://code.google.com/p/easymf/
我下载下来的源代码见附件。
布局xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/seep" android:id="@+id/seep" /> <SeekBar android:id="@+id/seekbar" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
java代码
public class SeekBarActivity extends Activity { private SeekBar seekbar; private TextView tv ; int max=100; boolean flag = true; private Handler handler = new Handler(){ public void handleMessage(Message mes){ seekbar.setProgress(seekbar.getProgress()+1); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); seekbar = (SeekBar)findViewById(R.id.seekbar); tv = (TextView)findViewById(R.id.seep); seekbar.setMax(max); seep(); seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { tv.setText("进度为:"+progress+"%"); } @Override public void onStartTrackingTouch(SeekBar seekBar) { //停止刷新 flag=false; } @Override public void onStopTrackingTouch(SeekBar seekBar) { flag=true; handler.sendEmptyMessage(0); } }); } private void seep(){ DisThread dt = new DisThread(); dt.start(); } class DisThread extends Thread{ public void run(){ while(flag && seekbar.getProgress()<max){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(0); } } } }