AlertDialog and ProgressDialog 的用法
AlertDialog是对话框的一种,这个对话框是置顶于所有界面元素之上 的,能够屏蔽掉其他控件的交互能力,所以常用来提示一些警告信息。
比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。下面就开始学习它的用法:
首先在一个空白的主Layout里面添加一个button,这是为了弹出对话框。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.jwg.helloworld.SecondActivity" tools:showIn="@layout/activity_second"> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="btn2" /> </RelativeLayout>
然后就可以MainActivity里面java的代码了。
MainActivity.xml
package com.example.jwg.helloworld; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.view.Window; import android.widget.Button; import android.widget.ProgressBar; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { protected ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); Log.e("Hello World", "onCreate: "); progressBar = (ProgressBar) findViewById(R.id.progressbar); Button btn =(Button)findViewById(R.id.btn); btn.setOnClickListener(this); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "This is Button", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. switch (item.getItemId()) { case R.id.add: Toast.makeText(this, "Click add", Toast.LENGTH_SHORT).show(); break; case R.id.remove: Toast.makeText(this, "Click remove",Toast.LENGTH_SHORT).show(); } return true; } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn: AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); dialog.setTitle("This is Dialog"); dialog.setMessage("Something important"); dialog.setCancelable(false); dialog.setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dialog.show(); break; default: break; } } } // int progress = progressBar.getProgress(); // progress = progress+50; // progressBar.setProgress(progress);/ // if (progressBar.getVisibility() == View.GONE){ // progressBar.setVisibility(View.VISIBLE); // }else{ // progressBar.setVisibility(View.GONE); // } /
代码并不多其中有很多是多余的代码,主要的就是这点:
@Override public void onClick(View v) { switch (v.getId()){ case R.id.btn: AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); dialog.setTitle("This is Dialog"); dialog.setMessage("Something important"); dialog.setCancelable(false); dialog.setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dialog.show(); break; default: break; } } }
这个代码的其实就是这样的 :
首先通过 AlertDialog.Builder创建出一个 AlertDialog的实例,然后可以为这个对话框设 置标题、内容、可否取消等属性,
接下来调用 setPositiveButton()方法为对话框设置确定按钮 的点击事件,调用 setNegativeButton()方法设置取消按钮的
点击事件,最后调用 show()方法 将对话框显示出来。


浙公网安备 33010602011771号