用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);
}
}
}
}