9. Toast--Android 专属浮动小提示
下例中,实现在一个EditView中输入一段话后,点击Button,Toast显示这段话。
示例代码:
① 新建工程
② 在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 元素:一个EditView 和一个Button
<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>
④ 修改mainActivity.java 文件
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("");
}
});
}
}
⑤ 结果
关键点:
1. Toast 简介
Toast 是 Android 用来显示显示信息的一种机制。它与Dialog 不同,Toast 是没有焦点的。而且 Toast的显示时间有限,过了一定的时间会自动消失。
2.Toast 的 makeText 方法
方法一:
函数原型:
public static Toast makeText (Context context, int resId, int duration)
Make a standard toast that just contains a text view with the text from a resource.
参数:
context |
The context to use. Usually your Application or Activity object. |
resId |
The resource id of the string resource to use. Can be formatted text. |
duration |
How long to display the message. Either LENGTH_SHORT or LENGTH_LONG |
方法二:
函数原型:
public static Toast makeText (Context context, CharSequence text, int duration)
Make a standard toast that just contains a text view.
参数:
context |
The context to use. Usually your Application or Activity object. |
text |
The text to show. Can be formatted text. |
duration |
How long to display the message. Either LENGTH_SHORT or LENGTH_LONG |
10.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 {
@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 TextView 等其他View的方法:
1. Toast 显示 Button 的方法
核心代码:
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();
}
2. Toast 显示 TextView 的方法
核心代码:
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();
}
关键点:
1. Toast 的public 构造方法
函数原型:
public Toast (Context context)
Construct an empty Toast object. You must call setView(View) before you can call show().
参数:
context The context to use. Usually your Application or Activity object 。
2. Toast 的 setView 方法
函数原型:
public void setView (View view)
Set the view to show.
延伸:
同理可以根据 public View getView() 方法返回 Toast 里的 view 。
3. Toast 的 setDuration 方法
函数原型:
public void setDuration (int duration)
Set how long to show the view for.
参数:
duration 设置显示时长
LENGTH_SHORT :Android 缺省的常量 表示较短时间
LENGTH_LONG :Android 缺省的常量 表示较长时间
4. Toast 的 show 方法
函数原型:
public void show()
Show the view for the specified duration .
11. 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();
}
}
③ 结果