当前位置:  编程技术>移动开发
本页文章导读:
    ▪格局中@null的代码实现方式        布局中@null的代码实现方式    布局中通常会用到@null。如RadioButton常用的技巧通过RadioGroup实现Tab,需要设置android:button="@null"。如果要在代码中动态创建控件,android中并不能找到相关的属性或.........
    ▪ RadioButton、CheckBox跟Toast的使用        RadioButton、CheckBox和Toast的使用 package com.duoguo.android; import android.app.Activity;import android.os.Bundle;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.RadioButton;import android.widget.RadioG.........
    ▪ UISegmentedControl切换view的兑现       UISegmentedControl切换view的实现 有三个view,分别为view1、view2、view3,通过UISegmentedControl进行三个view的切换。   @interface UIViewDemoViewController : UIViewController { IBOutlet UIView *view1; IBOutlet UIView *view2; .........

[1]格局中@null的代码实现方式
    来源: 互联网  发布时间: 2014-02-18
布局中@null的代码实现方式

   布局中通常会用到@null。如RadioButton常用的技巧通过RadioGroup实现Tab,需要设置android:button="@null"。如果要在代码中动态创建控件,android中并不能找到相关的属性或方法。搜索均无解决办法,最后想到一个变通的方法:通过透明色获取drawable。

setButtonDrawable(getResources().getDrawable(android.R.color.transparent))
 

   实际还是可以通过布局的方法来动态创建控件。先创建一个RadioButton的rb.xml

 

<?xml version="1.0" encoding="utf-8"?>
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:button="@null" >

</RadioButton>

 

再在代码生成RadioButton

 

RadioButton rb =(RadioButton)LayoutInflater.from(getContext()).inflate(R.layout.rb, null);

 这种方式的好处是样式等属性可以在布局中统一指定省的查sdk寻找相关属性的设置方法。

1 楼 nocb 2012-01-05  
非常感谢 受用了
2 楼 lorrycat 2012-04-16  
太感谢了,解决了一个大难题!!!!!

    
[2] RadioButton、CheckBox跟Toast的使用
    来源: 互联网  发布时间: 2014-02-18
RadioButton、CheckBox和Toast的使用

package com.duoguo.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

/**
 * 1、CheckBox的使用; 2、RadioButton的使用; 3、Toast的使用。
 *
 * @author shyboy(897948924@qq.com)
 *
 */
public class ButtonActivityActivity extends Activity {

 private RadioGroup genderRadioGroup;
 private RadioButton maleRadioButton;
 private RadioButton femaleRadioButton;

 private CheckBox footballCheckBox;
 private CheckBox basketballCheckBox;
 private CheckBox volleyballCheckBox;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  genderRadioGroup = (RadioGroup) findViewById(R.id.genderRadioGroupId);
  maleRadioButton = (RadioButton) findViewById(R.id.maleRadioButtonId);
  femaleRadioButton = (RadioButton) findViewById(R.id.femaleRadioButtonId);

  footballCheckBox = (CheckBox) findViewById(R.id.footballCheckBoxId);
  basketballCheckBox = (CheckBox) findViewById(R.id.basketballCheckBoxId);
  volleyballCheckBox = (CheckBox) findViewById(R.id.volleyballCheckBoxId);

  // 为RadioGroup添加单击监听事件
  genderRadioGroup
    .setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

     @Override
     public void onCheckedChanged(RadioGroup group, int checkedId) {

      if (maleRadioButton.getId() == checkedId)// 当单选按钮被选中时
      {
       System.out.println("male");
       Toast.makeText(ButtonActivityActivity.this,
         "您选择的是" + maleRadioButton.getText(),
         Toast.LENGTH_LONG).show();
      } else if (femaleRadioButton.getId() == checkedId) {
       System.out.println("female");
       Toast.makeText(ButtonActivityActivity.this,
         "您选择的是:" + femaleRadioButton.getText(),
         Toast.LENGTH_LONG).show();
      }

     }
    });

  // 为CheckBox添加单击监听事件
  footballCheckBox
    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

     @Override
     public void onCheckedChanged(CompoundButton buttonView,
       boolean isChecked) {

      if (isChecked) {
       System.out.println("football");
       Toast.makeText(ButtonActivityActivity.this,
         "原来您的爱好是:" + footballCheckBox.getText(),
         Toast.LENGTH_LONG).show();
      } else {
       Toast.makeText(ButtonActivityActivity.this,
         "原来您不喜欢的是:" + footballCheckBox.getText(),
         Toast.LENGTH_LONG).show();
      }

     }
    });

  basketballCheckBox
    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

     @Override
     public void onCheckedChanged(CompoundButton buttonView,
       boolean isChecked) {

      if (isChecked) {
       System.out.println("basketball");
       Toast.makeText(ButtonActivityActivity.this,
         "原来您的爱好是:" + basketballCheckBox.getText(),
         Toast.LENGTH_LONG).show();
      } else {
       Toast.makeText(ButtonActivityActivity.this,
         "原来您不喜欢的是:" + basketballCheckBox.getText(),
         Toast.LENGTH_LONG).show();
      }

     }
    });

  volleyballCheckBox
    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

     @Override
     public void onCheckedChanged(CompoundButton buttonView,
       boolean isChecked) {

      if (isChecked) {
       System.out.println("volleyball");
       Toast.makeText(ButtonActivityActivity.this,
         "原来您的爱好是:" + volleyballCheckBox.getText(),
         Toast.LENGTH_LONG).show();
      } else {
       Toast.makeText(ButtonActivityActivity.this,
         "原来您不喜欢的是:" + volleyballCheckBox.getText(),
         Toast.LENGTH_LONG).show();
      }

     }
    });

 }
}

 

main.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">

 <RadioGroup android:id="@+id/genderRadioGroupId"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:orientation="vertical">

  <RadioButton android:id="@+id/maleRadioButtonId"
   android:layout_width="wrap_content" android:layout_height="wrap_content"
   android:text="@string/male" />

  <RadioButton android:id="@+id/femaleRadioButtonId"
   android:layout_width="wrap_content" android:layout_height="wrap_content"
   android:text="@string/female" />

 </RadioGroup>

 <CheckBox android:id="@+id/footballCheckBoxId"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:text="@string/football" />

 <CheckBox android:id="@+id/basketballCheckBoxId"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:text="@string/basketball" />

 <CheckBox android:id="@+id/volleyballCheckBoxId"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:text="@string/volleyball" />

</LinearLayout>

 

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="app_name">ButtonActivity</string>
 <string name="male">男</string>
 <string name="female">女</string>
 <string name="football">足球</string>
 <string name="basketball">篮球</string>
 <string name="volleyball">排球</string>
</resources>


    
[3] UISegmentedControl切换view的兑现
    来源: 互联网  发布时间: 2014-02-18
UISegmentedControl切换view的实现

有三个view,分别为view1、view2、view3,通过UISegmentedControl进行三个view的切换。

 

@interface UIViewDemoViewController : UIViewController {
	IBOutlet UIView *view1;
	IBOutlet UIView *view2;
	IBOutlet UIView *view3;
}

- (IBAction)switchViews:(id)sender;
@end

 

在Interface Builder中分别建立三个view,关联到各自的输出口,每个view上的UISegmentedControl关联到switchViews:操作。

 

- (void)viewDidLoad {
    [super viewDidLoad];
	[self.view addSubview:view1];
	[self.view addSubview:view2];
	[self.view addSubview:view3];
}

- (IBAction)switchViews:(id)sender{
	UISegmentedControl *segmentedControl = sender;
	[[NSNotificationCenter defaultCenter] postNotificationName:@"switchViews" object:[NSNumber numberWithInteger:[segmentedControl selectedSegmentIndex]]];
}

 

接着,为UISegmentedControl控件建立一个处理类。

 

@interface SegmentedControl : UISegmentedControl {
	IBOutlet UIView *view1;
	IBOutlet UIView *view2;
	IBOutlet UIView *view3;
	IBOutlet UIViewDemoViewController* viewController;
}

@end

 

将UISegmentedControl控件的Class改为刚创建的处理类:SegmentedControl,然后,将UISegmentedControl控件关联到四个输出口:view分别关联到刚创建的三个view上,viewController关联到File's Owner上。

 

- (void)awakeFromNib{
	[[NSNotificationCenter defaultCenter] addObserver:self
											 selector:@selector(switchViews:)
												 name:@"switchViews"
											   object:nil];
}

- (void)switchViews:(NSNotification*)notification{
	NSNumber *viewNumber = [notification object];
	NSInteger i = [viewNumber integerValue];	
	[self setSelectedSegmentIndex:i];
	UIView *chosenView = nil;
	switch (i) {
		case 0:
			chosenView = view1;
			break;
		case 1:
			chosenView = view2;
			break;
		case 2:
			chosenView = view3;
			break;
		default:
			break;
	}
	if (chosenView) {
		[[viewController view] bringSubviewToFront:chosenView];
	}
}

- (void)dealloc{
	[super dealloc];
	[[NSNotificationCenter defaultCenter] removeObserver:self];
}

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3