用纯代码实现RadioGroup,并且实现滚动条
2014-08-13 11:31
891 查看
一.代码如下:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.TextView;
/**
* 用纯代码实现RadioGroup,并且实现滚动条
* */
public class QuestionActivity extends Activity {
/**
* 性别问题标题
* */
private TextView mSexQuestionTv;
/**
* 冠军问题标题
* */
private TextView mChampionQuestionTv;
/**
* 城市名称问题标题
* */
private TextView mCityQuestionTv;
/**
* 城市名称问题答案
* */
private TextView mCitySolutionTv;
/**
* 性别问题选项组
* */
private RadioGroup mSexQuestionRG;
/**
* 冠军问题选项组
* */
private RadioGroup mChampionQuestionRG;
/**
* 城市名称选项组
* */
private RadioGroup mCityQuestionRG;
/**
* 帅哥
* */
private RadioButton mHandsomeBoyRd;
/**
* 美女
* */
private RadioButton mBelleRd;
/**
* 西班牙
* */
private RadioButton mSpainRd;
/**
* 荷兰
* */
private RadioButton mHollandRd;
/**
* 德国
* */
private RadioButton mGermanyRd;
/**
* 北京
* */
private RadioButton mBeijingCityRd;
/**
* 上海
* */
private RadioButton mShangHaiCityRd;
/**
* 广州
* */
private RadioButton mGuangZhouRd;
/**
* 深圳
* */
private RadioButton mShenZhenCityRd;
private ScrollView mScrollView;
/**
* 问题根部局
* */
private LinearLayout mRootLl;
/**
* RadioGroup布局参数
* */
RadioGroup.LayoutParams mRadioParams;
/**
* 线性布局参数
* */
LinearLayout.LayoutParams mLinearParams;
/**
* 设置布局的宽高
* */
private final int mWidth = LinearLayout.LayoutParams.FILL_PARENT;
/**
* 设置布局的宽高
* */
private final int mHeight = LinearLayout.LayoutParams.FILL_PARENT;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScrollView = new ScrollView(this);
/**
* 设置滚屏布局的宽高布局
* */
mScrollView.setLayoutParams(new LayoutParams(mWidth, mHeight));
mRootLl = new LinearLayout(this);
// mRootLl.setBackgroundResource(R.drawable.back);
mRootLl.setBackgroundColor(Color.BLACK);
/**
* 设置Root线性布局的宽高
* */
mRootLl.setLayoutParams(new LayoutParams(mWidth, mHeight));
mRootLl.setOrientation(LinearLayout.VERTICAL);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mScrollView.addView(mRootLl);
mSexQuestionTv = new TextView(this);
mSexQuestionTv.setText("请问你是");
mRootLl.addView(mSexQuestionTv, mLinearParams);
mSexQuestionRG = new RadioGroup(this);
mSexQuestionRG.setOrientation(RadioGroup.VERTICAL);
// mParams = new RadioGroup.LayoutParams(137,216);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mRootLl.addView(mSexQuestionRG, mLinearParams);
mHandsomeBoyRd = new RadioButton(this);
mHandsomeBoyRd.setText("帅哥");
/**
* 设置ID
* */
mHandsomeBoyRd.setId(1001);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mSexQuestionRG.addView(mHandsomeBoyRd, mRadioParams);
mBelleRd = new RadioButton(this);
mBelleRd.setText("美女");
/**
* 设置ID
* */
mBelleRd.setId(1002);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mSexQuestionRG.addView(mBelleRd, mRadioParams);
mChampionQuestionTv = new TextView(this);
mChampionQuestionTv.setText("2010南非世界杯季军是");
mRootLl.addView(mChampionQuestionTv, mLinearParams);
mChampionQuestionRG = new RadioGroup(this);
mChampionQuestionRG.setOrientation(RadioGroup.VERTICAL);
// mParams = new RadioGroup.LayoutParams(137,216);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mRootLl.addView(mChampionQuestionRG, mLinearParams);
mSpainRd = new RadioButton(this);
mSpainRd.setText("西班牙");
/**
* 设置ID
* */
mSpainRd.setId(1003);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mChampionQuestionRG.addView(mSpainRd, mRadioParams);
mHollandRd = new RadioButton(this);
mHollandRd.setText("荷兰");
/**
* 设置ID
* */
mHollandRd.setId(1004);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mChampionQuestionRG.addView(mHollandRd, mRadioParams);
mGermanyRd = new RadioButton(this);
mGermanyRd.setText("德国");
/**
* 设置ID
* */
mGermanyRd.setId(1005);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mChampionQuestionRG.addView(mGermanyRd, mRadioParams);
mCityQuestionTv = new TextView(this);
mCityQuestionTv.setText("2010亚运会在哪个城市举行: ");
mRootLl.addView(mCityQuestionTv, mLinearParams);
mCityQuestionRG = new RadioGroup(this);
mCityQuestionRG.setOrientation(RadioGroup.VERTICAL);
// mParams = new RadioGroup.LayoutParams(137,216);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mRootLl.addView(mCityQuestionRG, mLinearParams);
mBeijingCityRd = new RadioButton(this);
mBeijingCityRd.setText("北京");
/**
* 设置ID
* */
mBeijingCityRd.setId(1006);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mBeijingCityRd, mRadioParams);
mShangHaiCityRd = new RadioButton(this);
mShangHaiCityRd.setText("上海");
/**
* 设置ID
* */
mShangHaiCityRd.setId(1007);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mShangHaiCityRd, mRadioParams);
mGuangZhouRd = new RadioButton(this);
mGuangZhouRd.setText("广州");
/**
* 设置ID
* */
mGuangZhouRd.setId(1008);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mGuangZhouRd, mRadioParams);
mShenZhenCityRd = new RadioButton(this);
mShenZhenCityRd.setText("深圳");
/**
* 设置ID
* */
mShenZhenCityRd.setId(1009);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mShenZhenCityRd, mRadioParams);
mCitySolutionTv = new TextView(this);
mCitySolutionTv.setText("答案: ");
mRootLl.addView(mCitySolutionTv, mLinearParams);
/**
* 设置当前的布局
* */
setContentView(mScrollView);
mSexQuestionRG.setOnCheckedChangeListener(mRadioChangeListener);
mChampionQuestionRG.setOnCheckedChangeListener(mRadioChangeListener);
mCityQuestionRG.setOnCheckedChangeListener(mRadioChangeListener);
}
/**
* 选项选择改变的事件
* */
private RadioGroup.OnCheckedChangeListener mRadioChangeListener = new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == mHandsomeBoyRd.getId()) {
mSexQuestionTv.setText(mBelleRd.getText());
} else if (checkedId == mBelleRd.getId()) {
mSexQuestionTv.setText(mBelleRd.getText());
} else if (checkedId == mSpainRd.getId()) {
mChampionQuestionTv.setText(mSpainRd.getText());
} else if (checkedId == mHollandRd.getId()) {
mChampionQuestionTv.setText(mHollandRd.getText());
} else if (checkedId == mGermanyRd.getId()) {
mChampionQuestionTv.setText(mGermanyRd.getText());
} else if (checkedId == mBeijingCityRd.getId()) {
mCitySolutionTv.setText("答案: " + mBeijingCityRd.getText());
} else if (checkedId == mShangHaiCityRd.getId()) {
mCitySolutionTv.setText("答案: " + mShangHaiCityRd.getText());
} else if (checkedId == mGuangZhouRd.getId()) {
mCitySolutionTv.setText("答案: " + mGuangZhouRd.getText());
} else if (checkedId == mShenZhenCityRd.getId()) {
mCitySolutionTv.setText("答案: " + mShenZhenCityRd.getText());
}
}
};
}
二.实际效果图:
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.TextView;
/**
* 用纯代码实现RadioGroup,并且实现滚动条
* */
public class QuestionActivity extends Activity {
/**
* 性别问题标题
* */
private TextView mSexQuestionTv;
/**
* 冠军问题标题
* */
private TextView mChampionQuestionTv;
/**
* 城市名称问题标题
* */
private TextView mCityQuestionTv;
/**
* 城市名称问题答案
* */
private TextView mCitySolutionTv;
/**
* 性别问题选项组
* */
private RadioGroup mSexQuestionRG;
/**
* 冠军问题选项组
* */
private RadioGroup mChampionQuestionRG;
/**
* 城市名称选项组
* */
private RadioGroup mCityQuestionRG;
/**
* 帅哥
* */
private RadioButton mHandsomeBoyRd;
/**
* 美女
* */
private RadioButton mBelleRd;
/**
* 西班牙
* */
private RadioButton mSpainRd;
/**
* 荷兰
* */
private RadioButton mHollandRd;
/**
* 德国
* */
private RadioButton mGermanyRd;
/**
* 北京
* */
private RadioButton mBeijingCityRd;
/**
* 上海
* */
private RadioButton mShangHaiCityRd;
/**
* 广州
* */
private RadioButton mGuangZhouRd;
/**
* 深圳
* */
private RadioButton mShenZhenCityRd;
private ScrollView mScrollView;
/**
* 问题根部局
* */
private LinearLayout mRootLl;
/**
* RadioGroup布局参数
* */
RadioGroup.LayoutParams mRadioParams;
/**
* 线性布局参数
* */
LinearLayout.LayoutParams mLinearParams;
/**
* 设置布局的宽高
* */
private final int mWidth = LinearLayout.LayoutParams.FILL_PARENT;
/**
* 设置布局的宽高
* */
private final int mHeight = LinearLayout.LayoutParams.FILL_PARENT;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScrollView = new ScrollView(this);
/**
* 设置滚屏布局的宽高布局
* */
mScrollView.setLayoutParams(new LayoutParams(mWidth, mHeight));
mRootLl = new LinearLayout(this);
// mRootLl.setBackgroundResource(R.drawable.back);
mRootLl.setBackgroundColor(Color.BLACK);
/**
* 设置Root线性布局的宽高
* */
mRootLl.setLayoutParams(new LayoutParams(mWidth, mHeight));
mRootLl.setOrientation(LinearLayout.VERTICAL);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mScrollView.addView(mRootLl);
mSexQuestionTv = new TextView(this);
mSexQuestionTv.setText("请问你是");
mRootLl.addView(mSexQuestionTv, mLinearParams);
mSexQuestionRG = new RadioGroup(this);
mSexQuestionRG.setOrientation(RadioGroup.VERTICAL);
// mParams = new RadioGroup.LayoutParams(137,216);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mRootLl.addView(mSexQuestionRG, mLinearParams);
mHandsomeBoyRd = new RadioButton(this);
mHandsomeBoyRd.setText("帅哥");
/**
* 设置ID
* */
mHandsomeBoyRd.setId(1001);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mSexQuestionRG.addView(mHandsomeBoyRd, mRadioParams);
mBelleRd = new RadioButton(this);
mBelleRd.setText("美女");
/**
* 设置ID
* */
mBelleRd.setId(1002);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mSexQuestionRG.addView(mBelleRd, mRadioParams);
mChampionQuestionTv = new TextView(this);
mChampionQuestionTv.setText("2010南非世界杯季军是");
mRootLl.addView(mChampionQuestionTv, mLinearParams);
mChampionQuestionRG = new RadioGroup(this);
mChampionQuestionRG.setOrientation(RadioGroup.VERTICAL);
// mParams = new RadioGroup.LayoutParams(137,216);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mRootLl.addView(mChampionQuestionRG, mLinearParams);
mSpainRd = new RadioButton(this);
mSpainRd.setText("西班牙");
/**
* 设置ID
* */
mSpainRd.setId(1003);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mChampionQuestionRG.addView(mSpainRd, mRadioParams);
mHollandRd = new RadioButton(this);
mHollandRd.setText("荷兰");
/**
* 设置ID
* */
mHollandRd.setId(1004);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mChampionQuestionRG.addView(mHollandRd, mRadioParams);
mGermanyRd = new RadioButton(this);
mGermanyRd.setText("德国");
/**
* 设置ID
* */
mGermanyRd.setId(1005);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mChampionQuestionRG.addView(mGermanyRd, mRadioParams);
mCityQuestionTv = new TextView(this);
mCityQuestionTv.setText("2010亚运会在哪个城市举行: ");
mRootLl.addView(mCityQuestionTv, mLinearParams);
mCityQuestionRG = new RadioGroup(this);
mCityQuestionRG.setOrientation(RadioGroup.VERTICAL);
// mParams = new RadioGroup.LayoutParams(137,216);
mLinearParams = new LinearLayout.LayoutParams(mWidth, mHeight);
mRootLl.addView(mCityQuestionRG, mLinearParams);
mBeijingCityRd = new RadioButton(this);
mBeijingCityRd.setText("北京");
/**
* 设置ID
* */
mBeijingCityRd.setId(1006);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mBeijingCityRd, mRadioParams);
mShangHaiCityRd = new RadioButton(this);
mShangHaiCityRd.setText("上海");
/**
* 设置ID
* */
mShangHaiCityRd.setId(1007);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mShangHaiCityRd, mRadioParams);
mGuangZhouRd = new RadioButton(this);
mGuangZhouRd.setText("广州");
/**
* 设置ID
* */
mGuangZhouRd.setId(1008);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mGuangZhouRd, mRadioParams);
mShenZhenCityRd = new RadioButton(this);
mShenZhenCityRd.setText("深圳");
/**
* 设置ID
* */
mShenZhenCityRd.setId(1009);
mRadioParams = new RadioGroup.LayoutParams(mWidth, mHeight);
mCityQuestionRG.addView(mShenZhenCityRd, mRadioParams);
mCitySolutionTv = new TextView(this);
mCitySolutionTv.setText("答案: ");
mRootLl.addView(mCitySolutionTv, mLinearParams);
/**
* 设置当前的布局
* */
setContentView(mScrollView);
mSexQuestionRG.setOnCheckedChangeListener(mRadioChangeListener);
mChampionQuestionRG.setOnCheckedChangeListener(mRadioChangeListener);
mCityQuestionRG.setOnCheckedChangeListener(mRadioChangeListener);
}
/**
* 选项选择改变的事件
* */
private RadioGroup.OnCheckedChangeListener mRadioChangeListener = new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == mHandsomeBoyRd.getId()) {
mSexQuestionTv.setText(mBelleRd.getText());
} else if (checkedId == mBelleRd.getId()) {
mSexQuestionTv.setText(mBelleRd.getText());
} else if (checkedId == mSpainRd.getId()) {
mChampionQuestionTv.setText(mSpainRd.getText());
} else if (checkedId == mHollandRd.getId()) {
mChampionQuestionTv.setText(mHollandRd.getText());
} else if (checkedId == mGermanyRd.getId()) {
mChampionQuestionTv.setText(mGermanyRd.getText());
} else if (checkedId == mBeijingCityRd.getId()) {
mCitySolutionTv.setText("答案: " + mBeijingCityRd.getText());
} else if (checkedId == mShangHaiCityRd.getId()) {
mCitySolutionTv.setText("答案: " + mShangHaiCityRd.getText());
} else if (checkedId == mGuangZhouRd.getId()) {
mCitySolutionTv.setText("答案: " + mGuangZhouRd.getText());
} else if (checkedId == mShenZhenCityRd.getId()) {
mCitySolutionTv.setText("答案: " + mShenZhenCityRd.getText());
}
}
};
}
二.实际效果图:
相关文章推荐
- 用纯代码实现RadioGroup,并且实现滚动条
- RadioButtton java代码实现左右带自定义的图片,并且控制字体与图片间距,同时控件长度对其功能。
- 用纯代码实现RadioGroup效果
- 使用RadioGroup实现底部导航栏效果,不需要java代码。
- 用ScrollView实现RadioGroup的滚动
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- 代码解说一个网络爬虫的实现过程(一) http://www.it-park.cn/Group/TopicInfo.aspx?TopicIndex=6
- Girdview实现滚动条效果,并且Head部分不滚动
- js实现图片向上连续滚动特效代码(含注释)
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- 利用appendChild 5行代码实现全兼容的文字滚动效果
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- 用javascript实现代替marquee的滚动字幕效果代码
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- DIV实现左边表头固定、右边内容滚动的效果代码