- 浏览: 203131 次
- 性别:
- 来自: 湖南
文章分类
最新评论
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 516转载请注明出处:http:// ... -
android arcgis map应用
2013-10-14 20:11 13911 符号渲染 1.1 Symbol Symbol主要是对Gr ... -
lost android 开发教程二
2012-04-19 13:13 1923第二季课程介绍 1、控件使用方法介绍 Sprinner, ... -
android基础
2011-08-10 21:23 1060lost in android Linux 环境 ... -
3G应用开发之Android
2011-04-10 21:12 1654什么是3G 3G,全称为3rd Generation,中文含义 ... -
扫雷游戏
2011-02-25 16:32 1255MineSweeper是一个不错的Android开源扫雷游戏, ... -
应用、permission、资源
2011-02-25 13:45 1484应用 为程序添加Menu菜单 //创建OptionsMenu ... -
文件存取、数据库编程
2011-02-25 13:41 727文件存取、数据库编程 -
新版Android开发可视化UI设计DroidDraw
2011-02-24 15:16 1269新版Android开发可视化UI设计DroidDraw -
Android 基础UI编程4
2011-02-23 11:39 1404Android 基础UI编程 专业相框设计 ImageView ... -
Android 基础UI编程2
2011-02-21 10:29 1077Android 基础UI编程 标题、状态栏的隐藏 标题栏隐藏 ... -
Android 基础UI编程1
2011-02-18 15:45 959Android 基础UI编程 更改与显示文字标签 TextVi ... -
android开发--布局
2011-02-17 16:25 1056Android应用开发3 使用Bundle在Activity间 ... -
Android 模拟器
2011-02-17 15:40 1470Android 模拟器 模拟器参数 参数格式 option 选 ... -
Android开发--Dalvik ADB
2011-02-17 10:41 1540Android虚拟机Dalvik Dalvik冲击 随着Goo ... -
Android开发环境搭建
2011-02-17 09:38 1353Android开发环境搭建 ADV的创建 ADT0.9.1 版 ... -
基础入门一
2011-02-17 09:12 1085开放手机联盟--Open HandsetAlliance 什么 ...
相关推荐
本节我们将深入探讨“Android基础UI编程4”,主要关注Android中的布局管理、控件使用以及自定义UI组件等内容。 一、Android布局管理 Android提供多种布局管理器,如LinearLayout、RelativeLayout、ConstraintLayout...
根据给定的文件信息,以下是对“Android:基础UI编程3(中文)”这一主题的知识点详细解析: ### Android UI 编程基础 #### 一、理解Android UI编程 Android UI编程是开发移动应用时不可或缺的一部分,它涉及到创建...
本教程《新编Android 基础UI编程》聚焦于为初学者提供Android UI编程的基础知识,帮助开发者构建出美观且易用的应用界面。下面将详细阐述Android UI编程的关键概念和实践技巧。 1. **XML布局文件**:Android UI主要...
Android编程基础UI教程主要涵盖了Android应用程序中用户界面(UI)的构建和定制。UI是任何应用程序的核心部分,因为它直接影响到用户的交互体验。以下是对PDF文档中提到的关键知识点的详细解释: 1. **隐藏标题和...
这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+笔记七--基础UI编程2.pdf,将深入讲解Android应用程序中用户界面的设计与实现。...
常用UI编程源代码】是一个专为Android开发者设计的资源集合,旨在帮助初学者和有经验的开发者理解并掌握Android平台上的常见用户界面(UI)编程技术。本教程包含了20多个不同的源代码示例,这些示例涵盖了Android UI...
《新编Android基础UI编程》是一本专注于Android用户界面(UI)开发的教程,适合初学者及有一定经验的开发者深入理解Android UI系统。该书涵盖了从基本的布局管理器到高级自定义视图的设计,旨在帮助读者掌握创建美观...
以下是一些关于Android基础UI编程的知识点: 1. **标题和状态栏的隐藏**: - Android中的Activity可以通过调用`requestWindowFeature()`方法来控制标题栏和状态栏的显示与隐藏。 - 要隐藏标题栏,可以在`...
在本节APP开发教程中,我们将深入探讨Android UI编程,主要关注以下几个方面: 1. **Android工程结构分析**: Android应用程序通常由多个组件构成,包括活动(Activity)、服务(Service)、广播接收器...
本节将深入探讨Android网络编程的基础知识,主要围绕Java网络编程这一核心概念展开。 首先,理解Android网络编程的基础概念至关重要。在Android中,网络操作通常在后台线程中执行,以避免阻塞主线程导致应用无响应...
在Android应用开发中,UI编程是一个核心部分,它涉及到用户界面设计、布局控制、动画效果以及资源使用等多个方面。接下来,我们将会从提供的文件信息中提取相关的知识点进行详细说明。 首先,标题《android 应用 UI...
在Android平台上,UI设计与实现是构建任何应用的基础,尤其是对于远程医疗这样的应用程序,用户界面的设计至关重要,因为它直接影响到用户的体验和效率。本项目“Android UI demo(远程医疗)”主要展示了如何在...
新版Android开发教程-基础UI编程
本教程将深入探讨Android的基础UI编程,包括各种常用的UI控件及其用法。 首先,我们从最基本的控件开始。TextView是Android中最常见的控件,用于显示文本。你可以设置文字内容、字体样式、颜色等属性。比如,通过`...
通过以上内容,我们可以了解到《Android UI基础教程》这本书旨在帮助读者全面了解Android用户界面设计的基本原理和技术要点。无论是对于刚接触Android开发的新手还是有一定经验的开发者来说,这本书都能够提供宝贵的...
"老罗android视频常用UI编程"是一系列深入讲解Android UI编程的教程,包含了从基础到进阶的全方位知识。这个资源提供了1-33集的完整视频源码,为开发者提供了丰富的实践材料,旨在帮助开发者熟练掌握Android UI的...