- 浏览: 197033 次
- 性别:
- 来自: 湖南
文章分类
最新评论
Android UI编程基础
EditText 与TextView 共舞
setOnKeyListener 事件
① 新建工程
② 在main.xml 布局中添加UI 元素:一个EditText 和一个TextView
③ 在mainActivity.java 主Activity 中修改代码
处理EditText 键入事件
设计具有背景图的按钮
ImageButton 的焦点及事件处理
① 新建工程
② 准备png 图片资源clickimage.png、lostfocusimage.png、onfocusimage.png
③ 在string.xml 中添加字符串
④ 修改main.xml 布局,添加布局元素
⑤ 修改mainActivity.java
使用XML实现按钮改变焦点设置背景图
Button 的android:background 属性
设置按钮背景图片:
onFocus() 与onClick() 事件处理
Item 的android:state_focused 和android:state_pressed 属性
实现
① 新建工程
② 准备png 背景图片defaultimage.png 、onfocusimage.png、clickimage.png
③ 在main.xml 布局中添加一个ImageButton 和一个Button(作对比)
clickimage defaultimage.png onfocusimage.png
④ 在drawable 文件夹中添加一个advancedbutton.xml 设置<selector>和<item>标签
⑤ 设置ImageButton 的android:background 属性值
获得焦点时
获得焦点并按下
失去焦点时
默认时
利用XML 来改变按钮背景图片
给圣诞老人的信息
Toast--Android 专属浮动小提示
① 新建工程
② 在string.xml 中添加字符串
③ 在main.xml 布局中添加UI 元素:一个TextView、一个EditView 和一个Button
④ 修改mainActivity.java 文件
Toast--显示View的提示
Toast 显示一个ImageView
① 新建工程
② 在drawable 文件夹中添加一副png 图片:argon.png
③ 修改mainActivity.java 文件
Toast 显示一个Button
① 新建工程
② 修改mainActivity.java 文件
Toast 显示一个TextView
① 新建工程
② 修改mainActivity.java 文件
AlertDialog.Builder提示对话框
① 新建工程
② 修改mainActivity.java 文件
同意条款
CheckBox 的isChecked 属性
① 创建新工程
② 在string.xml 中添加字符串
③ 修改main.xml 布局,添加UI 元素
④ 修改mainActivity.java 文件
购物列表
多选项CheckBox 的应用
① 新建工程
② 在string.xml 中添加字符串
③ 修改main.xml 布局,添加UI 元素
④ 修改mainActivity.java,添加逻辑判断
RadioButton单选
RadioGroup 组与onCheckedChanged 事件
① 新建工程
② string.xml 中添加字符串
③ 修改mian.xml 布局,添加UI 元素
④ 修改mainActivity.java 文件
RadioButton猜猜看
猜猜我是??
① 新建项目
② 准备三张png 图片
ic_menu_close_clear_cancel.png right.png wrong.png
③ 在string.xml 中添加要使用的字符串
④ 在main.xml 中添加UI 元素
⑤ 修改mainActivity.java 文件
EditText 与TextView 共舞
setOnKeyListener 事件
① 新建工程
② 在main.xml 布局中添加UI 元素:一个EditText 和一个TextView
<?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/hello"/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/myEditText"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/myTextView"/> </LinearLayout>
③ 在mainActivity.java 主Activity 中修改代码
package zyf.EX_Ctrl_1; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class EX_Ctrl_1 extends Activity { private TextView mTextView01; private EditText mEditText01; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 取得TextView、EditText */ mTextView01 = (TextView) findViewById(R.id.myTextView); mEditText01 = (EditText) findViewById(R.id.myEditText); /* 设置EditText 用OnKeyListener 事件来启动*/ mEditText01.setOnKeyListener(new EditText.OnKeyListener(){ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub mTextView01.setText(mEditText01.getText().toString()); return false; } }); } }
处理EditText 键入事件
设计具有背景图的按钮
ImageButton 的焦点及事件处理
① 新建工程
② 准备png 图片资源clickimage.png、lostfocusimage.png、onfocusimage.png
③ 在string.xml 中添加字符串
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">EX_Ctrl_2</string> <string name="unknown">图片按钮状态:未知</string> <string name="onfocus">图片按钮状态:Got Focus</string> <string name="lostfocus">图片按钮状态:Lost Focus</string> <string name="onclick">图片按钮状态:Got Click</string> <string name="normalbutton">一般按钮</string> </resources>
④ 修改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" android:background="#EE559611"> <TextView android:id="@+id/show_TextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/unknown" /> <ImageButton android:id="@+id/image_Button" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/normal_Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/normalbutton" /> </LinearLayout>
⑤ 修改mainActivity.java
package zyf.EX_Ctrl_2; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; public class EX_Ctrl_2 extends Activity { /** Called when the activity is first created. */ /* 声明三个对象变量(图片按钮,按钮,与TextView) */ private ImageButton mImageButton1; private Button mButton1; private TextView mTextView1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 通过findViewById 构造三个对象*/ mImageButton1 = (ImageButton) findViewById(R.id.image_Button ); mButton1 = (Button) findViewById(R.id.normal_Button ); mTextView1 = (TextView) findViewById(R.id.show_TextView); /* 通过OnFocusChangeListener 来响应ImageButton 的onFous 事件*/ mImageButton1.setOnFocusChangeListener(new OnFocusChangeListener() { public void onFocusChange(View arg0, boolean isFocused) { // TODO Auto-generated method stub /*若ImageButton 状态为onFocus 改变ImageButton 的图片 并改变textView 的文字*/ if (isFocused == true) { mTextView1.setText(R.string.onfocus); mImageButton1.setImageResource(R.drawable.onfocusimage); } /*若ImageButton 状态为offFocus 改变ImageButton 的图 片并改变textView 的文字*/ else { mTextView1.setText(R.string.lostfocus ); mImageButton1.setImageResource(R.drawable.lostfocusimage); } } }); /* 通过onClickListener 来响应ImageButton 的onClick 事件*/ mImageButton1.setOnClickListener(new OnClickListener() { public void onClick(View v){ // TODO Auto-generated method stub /*若ImageButton 状态为onClick 改变ImageButton 的图片 并改变textView 的文字*/ mTextView1.setText(R.string.onclick); mImageButton1.setImageResource(R.drawable.clickimage); } }); /*通过onClickListener 来响应Button 的onClick 事件*/ mButton1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub /*若Button 状态为onClick 改变ImageButton 的图片 * 并改变textView 的文字*/ mTextView1.setText(R.string.lostfocus); mImageButton1.setImageResource(R.drawable.lostfocusimage); } }); } }
使用XML实现按钮改变焦点设置背景图
Button 的android:background 属性
设置按钮背景图片:
onFocus() 与onClick() 事件处理
Item 的android:state_focused 和android:state_pressed 属性
实现
① 新建工程
② 准备png 背景图片defaultimage.png 、onfocusimage.png、clickimage.png
③ 在main.xml 布局中添加一个ImageButton 和一个Button(作对比)
clickimage defaultimage.png onfocusimage.png
<?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" android:background="#FF25CCDD"> <ImageButton android:id="@+id/image_Button" android:layout_width="wrap_content" android:layout_height="wrap_content" <Button android:text="Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout>
④ 在drawable 文件夹中添加一个advancedbutton.xml 设置<selector>和<item>标签
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/onfocusimage" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/clickimage" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/clickimage" /> <item android:drawable="@drawable/defaultimage"/> </selector>
⑤ 设置ImageButton 的android:background 属性值
<ImageButton android:id="@+id/image_Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/advancedbutton" />
获得焦点时
获得焦点并按下
失去焦点时
默认时
利用XML 来改变按钮背景图片
给圣诞老人的信息
Toast--Android 专属浮动小提示
① 新建工程
② 在string.xml 中添加字符串
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">EX_Ctrl_3</string> <string name="dear">亲爱的圣诞老人:</string> <string name="sendmyWish">送出愿望</string> <string name="yourWish">你的愿望:</string> <string name="hasSend">已送达圣诞老人信箱!</string> </resources>
③ 在main.xml 布局中添加UI 元素:一个TextView、一个EditView 和一个Button
<?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_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/TextView_dear" android:text="@string/dear"></TextView> <EditText android:layout_height="wrap_content" android:id="@+id/EditText_Wish" android:layout_width="fill_parent"></EditText> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button_Send" android:text="@string/sendmyWish" android:layout_marginLeft="50px"></Button> </LinearLayout>
④ 修改mainActivity.java 文件
package zyf.EX_Ctrl_3; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class EX_Ctrl_3 extends Activity { /** Called when the activity is first created. */ /*声明两个对象变量(按钮与编辑文字)*/ private Button mButton; private EditText mEditText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /*通过findViewById()取得对象*/ mButton=(Button)findViewById(R.id.Button_Send); mEditText=(EditText)findViewById(R.id.EditText_Wish); /*设置onClickListener 给Button 对象聆听onClick 事件*/ mButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub /*声明字符串变量并取得用户输入的EditText 字符串*/ Editable Str; Str=mEditText.getText(); /*使用CharSequence类getString()方法从XML中获取String*/ CharSequence string2=getString(R.string.yourWish); CharSequence string3=getString(R.string.hasSend); /*使用系统标准的makeText()方式来产生Toast 信息*/ Toast.makeText( EX_Ctrl_3.this,string2+Str.toString()+string3,Toast.LENGTH _LONG).show(); /*清空EditText*/ mEditText.setText(""); } }); } }
Toast--显示View的提示
Toast 显示一个ImageView
① 新建工程
② 在drawable 文件夹中添加一副png 图片:argon.png
③ 修改mainActivity.java 文件
package zyf.EX_Ctrl_3_B; import android.app.Activity; import android.os.Bundle; import android.widget.ImageView; import android.widget.Toast; public class EX_Ctrl_3_B extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /*设置主屏布局*/ setContentView(R.layout.main); /*创建新Toast对象*/ Toast showImageToast=new Toast(this); /*创建新ImageView对象*/ ImageView imageView=new ImageView(this); /*从资源中获取图片*/ imageView.setImageResource(R.drawable.argon); /*设置Toast上的View--(ImageView)*/ showImageToast.setView(imageView); /*设置Toast显示时间*/ showImageToast.setDuration(Toast.LENGTH_LONG); /*显示Toast*/ showImageToast.show(); } }
Toast 显示一个Button
① 新建工程
② 修改mainActivity.java 文件
package zyf.EX_Ctrl_3_B; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class EX_Ctrl_3_B extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置主屏布局*/ setContentView(R.layout.main); /* 创建新Toast对象*/ Toast showImageToast = new Toast(this); // /*新建Button对象*/ Button button = new Button(this); button.setText("OK"); /* 设置Toast上的View--(Button) */ showImageToast.setView(button); /* 设置Toast显示时间*/ showImageToast.setDuration(Toast.LENGTH_LONG); /* 显示Toast */ showImageToast.show(); } }
Toast 显示一个TextView
① 新建工程
② 修改mainActivity.java 文件
package zyf.EX_Ctrl_3_B; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.Toast; public class EX_Ctrl_3_B extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置主屏布局*/ setContentView(R.layout.main); /* 创建新Toast对象*/ Toast showImageToast = new Toast(this); /*新建TextView对象*/ TextView text=new TextView(this); /*设置TextView内容*/ text.setText("显示在Toast中的TextView"); /* 设置Toast上的View--(TextView) */ showImageToast.setView(text); /* 设置Toast显示时间*/ showImageToast.setDuration(Toast.LENGTH_LONG); /* 显示Toast */ showImageToast.show(); } }
AlertDialog.Builder提示对话框
① 新建工程
② 修改mainActivity.java 文件
package zyf.EX_Ctrl_3_B; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; public class EX_Ctrl_3_B extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置主屏布局*/ setContentView(R.layout.main); /*新建一个AlertDialog.Builder对象*/ AlertDialog.Builder my_ADialog =new AlertDialog.Builder(this); /*设置标题*/ my_ADialog.setTitle("Android 提示"); /*设置显示消息*/ my_ADialog.setMessage("AlertDialog.Builder提示对话框消息!!"); /*显示*/ my_ADialog.show(); } }
同意条款
CheckBox 的isChecked 属性
① 创建新工程
② 在string.xml 中添加字符串
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Ex_Ctrl_4</string> <string name="advice">请勾选我同意</string> <string name="accept">您已接受同意!!</string> <string name="Notaccept">您未同意!!</string> <string name="allOK">全部许可</string> </resources>
③ 修改main.xml 布局,添加UI 元素
<?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_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/TextView_Guide" android:textSize="25px" android:text="@string/advice"></TextView> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/TextView_youChoiceShow" android:textSize="25px"></TextView> <CheckBox android:layout_height="wrap_content" android:layout_marginTop="100px" android:layout_marginLeft="90px" android:id="@+id/CheckBox_Accept" android:layout_width="120px"></CheckBox> <Button android:layout_height="wrap_content" android:layout_marginLeft="90px" android:id="@+id/Button_OK" android:text="确定" android:layout_width="90px"></Button> </LinearLayout>
④ 修改mainActivity.java 文件
package zyf.Ex_Ctrl_4; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.TextView; public class Ex_Ctrl_4 extends Activity { /** Called when the activity is first created. */ private TextView showAdvice,yourChoiceshow; private CheckBox iAccept; private Button ok; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /*findViewById()从资源ID获取资源对象*/ showAdvice=(TextView)findViewById(R.id.TextView_Guide); yourChoiceshow=(TextView)findViewById(R.id.TextView_youChoiceShow ); iAccept=(CheckBox)findViewById(R.id.CheckBox_Accept); ok=(Button)findViewById(R.id.Button_OK); /*获取XML中字符串*/ CharSequence titleString=getString(R.string.allOK); /*设置复选框标题*/ iAccept.setHint(titleString); /*设置复选框标题字体颜色*/ iAccept.setHintTextColor(Color.RED); /*将CheckBox设置成未选中*/ iAccept.setChecked(false); /*将Button设置成不可选*/ ok.setEnabled(false); iAccept.setOnClickListener(new CheckBox.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub if(iAccept.isChecked()){ ok.setEnabled(true); yourChoiceshow.setText(R.string.accept); }else{ ok.setEnabled(false); yourChoiceshow.setText(R.string.Notaccept); } } }); ok.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub if(iAccept.isChecked()){ showAdvice.setText(R.string.accept); } } }); } }
购物列表
多选项CheckBox 的应用
① 新建工程
② 在string.xml 中添加字符串
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Ex_Ctrl_5</string> <string name="shoopingList_TextView_text" >网上购物商品清单</string> <string name="yourChocieWoods_text" >您选择购买的商品:</string> <string name="woods_Text_MP4">纽曼MP4</string> <string name="woods_Text_musicCD">Beyond乐队CD</string> <string name="woods_Text_book">Android程序员指南</string> </resources>
③ 修改main.xml 布局,添加UI 元素
<?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_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/TextView_shoppingList" android:text="@string/shoopingList_TextView_text" android:textSize="25px"></TextView> <CheckBox android:layout_height="wrap_content" android:id="@+id/CheckBox_MP4" android:text="@string/woods_Text_MP4" android:layout_width="180px"></CheckBox> <CheckBox android:layout_height="wrap_content" android:text="@string/woods_Text_musicCD" android:id="@+id/CheckBox_musicCD" android:layout_width="180px"></CheckBox> <CheckBox android:layout_height="wrap_content" android:text="@string/woods_Text_book" android:id="@+id/CheckBox_book" android:layout_width="180px"></CheckBox> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/TextView_yourChoice" android:text="@string/yourChocieWoods_text" android:textSize="20px"></TextView> <TextView android:layout_height="wrap_content" android:id="@+id/TextView_yourWoodsList" android:layout_width="fill_parent" android:textSize="20px"></TextView> </LinearLayout>
④ 修改mainActivity.java,添加逻辑判断
package zyf.Ex_Ctrl_5; import android.app.Activity; import android.os.Bundle; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; import android.widget.CompoundButton.OnCheckedChangeListener; public class Ex_Ctrl_5 extends Activity { /** Called when the activity is first created. */ private TextView showyourChoice_TextView; private CheckBox mp4_CheckBox, musicCD_CheckBox, book_CheckBox; private String showinfo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* findViewById()从XML中获取资源对象*/ showyourChoice_TextView = (TextView) findViewById(R.id.TextView_yourWoodsList ); mp4_CheckBox = (CheckBox) findViewById(R.id.CheckBox_MP4); musicCD_CheckBox = (CheckBox) findViewById(R.id.CheckBox_musicCD); book_CheckBox = (CheckBox) findViewById(R.id.CheckBox_book ); /* 为三个CheckBox设置选择状态改变事件监听器*/ mp4_CheckBox.setOnCheckedChangeListener(CheckedChangeListener); musicCD_CheckBox.setOnCheckedChangeListener(CheckedChangeListener); book_CheckBox.setOnCheckedChangeListener(CheckedChangeListener); /* 从XML中获取显示信息String */ showinfo = getString(R.string.yourChocieWoods_text ); } /* 内部接口实现*/ private OnCheckedChangeListener CheckedChangeListener = new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub /* 处理选中状态改变事件,动态显示选择结果*/ if (mp4_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_MP4) + "\n"; showString(); } else if (musicCD_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_musicCD) + "\n"; showString(); } else if (book_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_book ) + "\n"; showString(); } if ( mp4_CheckBox.isChecked() && musicCD_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_MP4) + "\n" + getString(R.string.woods_Text_musicCD ) + "\n"; showString(); } else if (mp4_CheckBox.isChecked() && book_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_MP4) + "\n" + getString(R.string.woods_Text_book ) + "\n"; showString(); } else if (musicCD_CheckBox.isChecked() && book_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_musicCD) + "\n" + getString(R.string.woods_Text_book ) + "\n"; showString(); } if ( mp4_CheckBox.isChecked() && musicCD_CheckBox.isChecked() && book_CheckBox.isChecked()) { showinfo = getString(R.string.woods_Text_MP4) + "\n" + getString(R.string.woods_Text_musicCD ) + "\n" + getString(R.string.woods_Text_book ) + "\n"; showString(); } if ( mp4_CheckBox.isChecked() == false && musicCD_CheckBox.isChecked() == false && book_CheckBox.isChecked() == false) { showyourChoice_TextView.setText(""); } } public void showString() { showyourChoice_TextView.setText(showinfo); } }; }
RadioButton单选
RadioGroup 组与onCheckedChanged 事件
① 新建工程
② string.xml 中添加字符串
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Ex_Ctrl_6</string> <string name="iam_Boy">帅哥</string> <string name="iamGirl">美女</string> <string name="ask">请问你是??</string> </resources>
③ 修改mian.xml 布局,添加UI 元素
<?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/ask" android:id="@+id/TextView_Ask_And_Show" android:textSize="25px"/> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/RadioGroup"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/RadioButton_Boy" android:text="@string/iam_Boy"></RadioButton> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/iamGirl" android:id="@+id/RadioButton_Gril"></RadioButton> </RadioGroup> </LinearLayout>
④ 修改mainActivity.java 文件
package zyf.Ex_Ctrl_6; import android.app.Activity; import android.os.Bundle; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; public class Ex_Ctrl_6 extends Activity { /** Called when the activity is first created. */ private TextView answer_TextView; private RadioButton boy_RadioButton,girl_RadioButton; private RadioGroup radioGroup; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* findViewById()从XML中获取资源对象*/ answer_TextView=(TextView)findViewById(R.id.TextView_Ask_And_Show); radioGroup=(RadioGroup)findViewById(R.id.RadioGroup); boy_RadioButton=(RadioButton)findViewById(R.id.RadioButton_Boy ); girl_RadioButton=(RadioButton)findViewById(R.id.RadioButton_Gril); /*给单RadioGroup添加状态改变监听器*/ radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub if(boy_RadioButton.isChecked()){ answer_TextView.setText(R.string.iam_Boy); }else{ answer_TextView.setText(R.string.iamGirl); } } }); } }
RadioButton猜猜看
猜猜我是??
① 新建项目
② 准备三张png 图片
ic_menu_close_clear_cancel.png right.png wrong.png
③ 在string.xml 中添加要使用的字符串
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Ex_Ctrl_6</string> <string name="iam_Boy">帅哥</string> <string name="iamGirl">美女</string> <string name="ask">猜猜我是??</string> <string name="answer_Q">回答</string> <string name="clean">清空</string> <string name="showAnswerTitle_YES">恭喜!</string> <string name="showAnswerTitle_NO">很遗憾!</string> <string name="about_dialog_ok">OK</string> <string name="right">您答对了!!</string> <string name="wrong">哈哈,错误!</string> <string name="answerIS">正确答案是:</string> </resources>
④ 在main.xml 中添加UI 元素
<?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/ask" android:id="@+id/TextView_Ask_And_Show" android:textSize="25px"/> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/RadioGroup"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/RadioButton_Boy" android:text="@string/iam_Boy"> </RadioButton> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/iamGirl" android:id="@+id/RadioButton_Gril"> </RadioButton> </RadioGroup> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/answer_The_Q_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/answer_Q" ></Button> <Button android:id="@+id/clean_The_Q_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/clean" ></Button> </LinearLayout> </LinearLayout>
⑤ 修改mainActivity.java 文件
package zyf.Ex_Ctrl_6; import java.util.Random; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; public class Ex_Ctrl_6 extends Activity implements Button.OnClickListener { /** Called when the activity is first created. */ private TextView answer_TextView; private RadioButton boy_RadioButton, girl_RadioButton; private RadioGroup radioGroup; private Button answer_Button, clean_Button; private String[] boy_girl; private AlertDialog.Builder showRightorNot; private MenuItem exit; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 结果显示对话框*/ showRightorNot = new AlertDialog.Builder(this); /* findViewById()从XML中获取资源对象*/ answer_TextView = (TextView) findViewById(R.id.TextView_Ask_And_Show); radioGroup = (RadioGroup) findViewById(R.id.RadioGroup); boy_RadioButton = (RadioButton) findViewById(R.id.RadioButton_Boy); girl_RadioButton = (RadioButton) findViewById(R.id.RadioButton_Gril); answer_Button = (Button) findViewById(R.id.answer_The_Q_button ); clean_Button = (Button) findViewById(R.id.clean_The_Q_button); /* 答案数组*/ boy_girl = new String[] { "Boy", "Girl","Boy", "Girl", "Boy", "Girl","Boy", "Girl", "Boy" }; /* 按钮设置成不可选*/ answer_Button.setEnabled(false); clean_Button.setEnabled(false); /* 给单RadioGroup添加状态改变监听器*/ radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group,int checkedId){ // TODO Auto-generated method stub /* 判断显示*/ if (boy_RadioButton.isChecked()) { answer_TextView.setText(R.string.iam_Boy); } else { answer_TextView.setText(R.string.iamGirl); } } }); boy_RadioButton.setOnClickListener(new RadioGroup.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub /* 按钮设置成可选*/ answer_Button.setEnabled(true); clean_Button.setEnabled(true); } }); girl_RadioButton.setOnClickListener(new RadioGroup.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub /* 按钮设置成可选*/ answer_Button.setEnabled(true); clean_Button.setEnabled(true); } }); /* 设置按钮事件监听器*/ answer_Button.setOnClickListener(this); clean_Button.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if (v.getId() == R.id.answer_The_Q_button) { if (boy_RadioButton.isChecked()) { checkTheAnswer("Boy"); } else if (girl_RadioButton.isChecked()) { checkTheAnswer("Girl"); } } if ( v.getId() == R.id.clean_The_Q_button) { /* 按钮设置成未选取*/ boy_RadioButton.setChecked(false); girl_RadioButton.setChecked(false); /* 按钮设置成不可选*/ answer_Button.setEnabled(false); clean_Button.setEnabled(false); answer_TextView.setText(R.string.ask); } } private void checkTheAnswer(String checkstring) { // TODO Auto-generated method stub /*检测提示*/ Toast.makeText(this, "检测答案…………", Toast.LENGTH_SHORT).show(); /*获取随机数*/ Random random = new Random(); int index = random.nextInt(9); if (boy_girl[index].equals(checkstring)) { /*回答正确,设置提示对话框,显示结果*/ showRightorNot.setIcon(R.drawable.right); showRightorNot.setTitle(R.string.showAnswerTitle_YES); showRightorNot.setPositiveButton(R.string.about_dialog_ok, null); showRightorNot.setMessage(R.string.right).show(); Toast.makeText(this,getString(R.string.answerIS) +boy_girl[index],Toast.LENGTH_LONG).show(); } else { /*回答错误,设置提示对话框,显示结果*/ showRightorNot.setIcon(R.drawable.wrong); showRightorNot.setTitle(R.string.showAnswerTitle_NO); showRightorNot.setPositiveButton(R.string.about_dialog_ok, null); showRightorNot.setMessage(R.string.wrong).show(); Toast.makeText(this,getString(R.string.answerIS)+ boy_girl[index], Toast.LENGTH_LONG).show(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub /*添加退出菜单*/ exit=menu.add("Exit"); /*设置退出菜单图片*/ exit.setIcon(R.drawable.ic_menu_close_clear_cancel ); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub /*结束Activity*/ finish(); return super.onOptionsItemSelected(item); } }
- 新版Android开发教程_笔记九--基础UI编程3.pdf (8.8 MB)
- 下载次数: 0
发表评论
-
Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
2015-12-18 22:23 477转载请注明出处:http:// ... -
android arcgis map应用
2013-10-14 20:11 13451 符号渲染 1.1 Symbol Symbol主要是对Gr ... -
lost android 开发教程二
2012-04-19 13:13 1827第二季课程介绍 1、控件使用方法介绍 Sprinner, ... -
android基础
2011-08-10 21:23 996lost in android Linux 环境 ... -
3G应用开发之Android
2011-04-10 21:12 1623什么是3G 3G,全称为3rd Generation,中文含义 ... -
扫雷游戏
2011-02-25 16:32 1213MineSweeper是一个不错的Android开源扫雷游戏, ... -
应用、permission、资源
2011-02-25 13:45 1441应用 为程序添加Menu菜单 //创建OptionsMenu ... -
文件存取、数据库编程
2011-02-25 13:41 692文件存取、数据库编程 -
新版Android开发可视化UI设计DroidDraw
2011-02-24 15:16 1215新版Android开发可视化UI设计DroidDraw -
Android 基础UI编程4
2011-02-23 11:39 1369Android 基础UI编程 专业相框设计 ImageView ... -
Android 基础UI编程2
2011-02-21 10:29 1041Android 基础UI编程 标题、状态栏的隐藏 标题栏隐藏 ... -
Android 基础UI编程1
2011-02-18 15:45 922Android 基础UI编程 更改与显示文字标签 TextVi ... -
android开发--布局
2011-02-17 16:25 1024Android应用开发3 使用Bundle在Activity间 ... -
Android 模拟器
2011-02-17 15:40 1431Android 模拟器 模拟器参数 参数格式 option 选 ... -
Android开发--Dalvik ADB
2011-02-17 10:41 1502Android虚拟机Dalvik Dalvik冲击 随着Goo ... -
Android开发环境搭建
2011-02-17 09:38 1310Android开发环境搭建 ADV的创建 ADT0.9.1 版 ... -
基础入门一
2011-02-17 09:12 1052开放手机联盟--Open HandsetAlliance 什么 ...
相关推荐
Android_基础UI编程[1].pdf
NULL 博文链接:https://fly-sky.iteye.com/blog/919171
Android开发笔记,UI基础编程,PDF文档。
Android基础UI编程.pdf
新编Android开发教程之—— 基础UI编程,PDF清淅版,Google手机编程朋友的必看教程,基础UI编程面向初级用户介绍一些基础知识,并通过实战去加深对理论的理解。
新编Android基础UI编程[PDF].rar
Android开发教程-基础UI编程 android的各种控件
新版Android开发教程-基础UI编程
新版Android开发教程 笔记9--基础UI编程3
Android开发教程 笔记--基础UI编程
新版Android开发教程+笔记--基础UI编程
新版Android开发教程笔记基础UI编程4
应用3、4 布局.Android开发教程+笔记7--基础UI编程1.Android开发教程+笔记8--基础UI编程2.Android开发教程+笔记9--基础UI编程3.Android开发教程+笔记10--基础UI编程4.Android开发教程+笔记11--可视化UI设计DroidDraw...
新版Android开发教程 笔记7--基础UI编程1
新版Android开发教程 笔记8--基础UI编程2
新版Android开发教程 笔记10--基础UI编程4