1、Toast: a、用来显示信息 ;b、没有焦点,显示时间有限;c、不会打断用户当前的操作
常用方法: show():用于显示信息。
setGravity(): #param:int gravity,int xOffset,int yOffset;用于设置信息的显示的位置。
setText():用于显示信息的文本,可以传入Spanner类的内容。
setView():用于设置信息的布局。
Dialog: 常用的又AlertDialog,继承于Dialog。
Toast有常规用法和自定义用法,所谓自定义用法,就是用setView()方法给Toast的信息提示提供一个自定义布局,达到特殊的目的。
java部分用两个按键的分别测试Toast的富文本用法和自定义用法
public class MainActivity extends Activity implements View.OnClickListener {private Button toastButton;private Button toastButton2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);toastButton = (Button) findViewById(R.id.toast_btn);toastButton.setOnClickListener(this);toastButton2 = (Button) findViewById(R.id.toast_btn2);toastButton2.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.toast_btn://Toast的setText可以传入一个富文本Toast toast;toast = Toast.makeText(getApplicationContext(), "我是你Toast爸爸", Toast.LENGTH_SHORT);Spanned spanned = Html.fromHtml("我是toast", new Html.ImageGetter() {@Overridepublic Drawable getDrawable(String source) {Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return null;}}, null);toast.setText(spanned);toast.setGravity(Gravity.LEFT | Gravity.BOTTOM, 0, 0);toast.show();case R.id.toast_btn2://自定义Toast即是给Toast设置一个自定义布局以显示信息Toast toast2 = new Toast(getApplicationContext());LayoutInflater inflater = getLayoutInflater();View view = inflater.inflate(R.layout.toast_view, null);TextView textView_content = (TextView) view.findViewById(R.id.content_text);textView_content.setText("我是内容");toast2.setView(view);toast2.setDuration(Toast.LENGTH_LONG);toast2.show();break;default:break;}}
}
布局文件activity_main
<RelativeLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"xmlns:tools&#61;"http://schemas.android.com/tools"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:paddingLeft&#61;"&#64;dimen/activity_horizontal_margin"android:paddingRight&#61;"&#64;dimen/activity_horizontal_margin"android:paddingTop&#61;"&#64;dimen/activity_vertical_margin"android:paddingBottom&#61;"&#64;dimen/activity_vertical_margin"tools:context&#61;".MainActivity"><Button
android:id&#61;"&#64;&#43;id/toast_btn"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"测试Toast"/><Button
android:id&#61;"&#64;&#43;id/toast_btn2"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:layout_below&#61;"&#64;&#43;id/toast_btn"android:text&#61;"测试自定义Toast"/>RelativeLayout>
Toast用于显示信息的自定义布局toast_view
<LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:gravity&#61;"center_horizontal"android:orientation&#61;"vertical"><TextView
android:id&#61;"&#64;&#43;id/title_text"android:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:text&#61;"我是标题"/><ImageView
android:id&#61;"&#64;&#43;id/image"android:layout_width&#61;"100dp"android:layout_height&#61;"100dp"android:src&#61;"&#64;drawable/abc_btn_rating_star_off_mtrl_alpha"/><TextView
android:id&#61;"&#64;&#43;id/content_text"android:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:text&#61;"我是内容"/>LinearLayout>
结果演示&#xff1a;
AlertDialog可以有多种形式&#xff1a;带有信息的简单对话框、可选择的对话框、单选对话框、多选对话框等
java部分&#xff0c;用四哥按钮来测试四种对话框
public class DialogActivity extends Activity implements View.OnClickListener {private Button dialogButton;private Button dialogButton2;private Button dialogButton3;private Button dialogButton4;private String[] mSexs &#61; {"男","女","其他"};private String[] mData &#61; {"第一个数据","第二个数据","第三个数据","第四个数据","第五个数据"};private String[] mHobbys &#61; {"篮球","乒乓球","游泳","跑步","健身"};private boolean[] mCheckedManager;//用于存储checkbox的是否被选中的状态private StringBuffer hobby;private String sex;&#64;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_dialog);dialogButton &#61; (Button)findViewById(R.id.button_dialog);dialogButton.setOnClickListener(this);dialogButton2 &#61; (Button)findViewById(R.id.button2_dialog);dialogButton2.setOnClickListener(this);dialogButton3 &#61; (Button)findViewById(R.id.button3_dialog);dialogButton3.setOnClickListener(this);dialogButton4 &#61; (Button)findViewById(R.id.button4_dialog);dialogButton4.setOnClickListener(this);}&#64;Overridepublic void onClick(View v) {switch (v.getId()){case R.id.button_dialog:simpleDialog();break;case R.id.button2_dialog:selectedDialog();break;case R.id.button3_dialog:singleDialog();break;case R.id.button4_dialog:mutiSelectedDialog();default:break;}}//建议对话框public void simpleDialog(){AlertDialog.Builder builder &#61; new AlertDialog.Builder(DialogActivity.this);builder.setIcon(R.mipmap.ic_launcher).setTitle("我是标题").setMessage("我是内容").setNegativeButton("NegativeButton", new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "选中NegativeButton", Toast.LENGTH_SHORT).show();}}).setNeutralButton("NeutralButton", new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "选中NeutralButton", Toast.LENGTH_SHORT).show();}}).setPositiveButton("PositiveButton", new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "选中PositiveButton", Toast.LENGTH_SHORT).show();}});AlertDialog dialog &#61; builder.create();dialog.show();}//可选对话框public void selectedDialog(){AlertDialog.Builder builder2 &#61; new AlertDialog.Builder(DialogActivity.this);builder2.setTitle("多选型Dialog");builder2.setItems(mData, new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "选中了第" &#43; which &#43; "个", Toast.LENGTH_SHORT).show();}});AlertDialog dialog1 &#61; builder2.create();dialog1.show();}//单选对话框public void singleDialog(){sex &#61; mSexs[0];AlertDialog.Builder builder &#61; new AlertDialog.Builder(DialogActivity.this);builder.setTitle("单选Dialog");builder.setSingleChoiceItems(mSexs, 0, new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {sex &#61; mSexs[which];Toast.makeText(getApplicationContext(), "选中的性别是" &#43; sex, Toast.LENGTH_SHORT).show();}});builder.setNeutralButton("确定", new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {dialogButton3.setText("您选中的性别是" &#43; sex);}});builder.setNegativeButton("取消", new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.show();//builder.show()也可以直接显示对话框}//多选对话框public void mutiSelectedDialog(){mCheckedManager &#61; new boolean[mHobbys.length];AlertDialog.Builder builder &#61; new AlertDialog.Builder(DialogActivity.this);builder.setTitle("[title]请选中您爱好的运动");builder.setMultiChoiceItems(mHobbys, mCheckedManager, new DialogInterface.OnMultiChoiceClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {mCheckedManager[which] &#61; isChecked;}});builder.setNeutralButton("确定", new OnClickListener() {&#64;Overridepublic void onClick(DialogInterface dialog, int which) {hobby &#61; new StringBuffer();for (int i &#61; 0; i
布局文件
<LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"android:orientation&#61;"vertical"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"><Button
android:id&#61;"&#64;&#43;id/button_dialog"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"弹出一个最简单的dialog"/><Button
android:id&#61;"&#64;&#43;id/button2_dialog"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"显示选择的Dialog"/><Button
android:id&#61;"&#64;&#43;id/button3_dialog"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"显示单选Dialog"/><Button
android:id&#61;"&#64;&#43;id/button4_dialog"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:text&#61;"显示多选Dialog"/>
LinearLayout>
结果演示&#xff1a;
简单对话框的演示&#xff1a;
可选择对话框的演示&#xff1a;
单选对话框的演示&#xff1a;
多选对话框的演示&#xff1a;