ANDROID中自訂對話方塊AlertDialog使用樣本_Android

來源:互聯網
上載者:User

在Android開發中,我們經常會需要在Android介面上彈出一些對話方塊,比如詢問使用者或者讓使用者選擇。這些功能我們叫它Android Dialog對話方塊,AlertDialog實現方法為建造者模式。AlertDialog中定義的一些對話方塊往往無法滿足我們關於對話方塊的需求,這時我們就需要通過自訂對話方塊VIEW來實現需求,這裡我自訂一個登陸的提示對話方塊,效果圖顯示如下:

Layout(alertdialog自訂登陸按鈕)介面代碼:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical" android:layout_width="match_parent"  android:layout_height="match_parent">  <Button    android:text="自訂登陸"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/button5"    android:onClick="login"/></LinearLayout>

Layout(login_layout登陸視窗)介面:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical" android:layout_width="match_parent"  android:layout_height="match_parent">  <EditText    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:inputType="text"    android:hint="請輸入使用者名稱"    android:id="@+id/et_username"/>  <EditText    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:inputType="textPassword"    android:hint="請輸入密碼"    android:id="@+id/et_password"/></LinearLayout>

java功能實現代碼:

public class AlertDialogDemo extends AppCompatActivity {  private EditText et_username,et_password;  @Override  protected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.alertdialog);  }  public void login(View v){    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setTitle("登入");     //通過布局填充器獲login_layout    View view = getLayoutInflater().inflate(R.layout.login_layout,null);     //擷取兩個文本編輯框(密碼這裡不做登陸實現,僅示範)    final EditText et_username = (EditText) view.findViewById(R.id.et_username);    final EditText et_password = (EditText) view.findViewById(R.id.et_password);    builder.setView(view);//設定login_layout為對話提示框    builder.setCancelable(false);//設定為不可取消    //設定正面按鈕,並做事件處理    builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialogInterface, int i) {        String name = et_username.getText().toString().trim();        String pass = et_password.getText().toString().trim();        Toast.makeText(AlertDialogDemo.this,name + "正在登入....",Toast.LENGTH_SHORT).show();      }    });    //設定反面按鈕,並做事件處理    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialogInterface, int i) {        Toast.makeText(AlertDialogDemo.this,"取消登入",Toast.LENGTH_SHORT).show();      }    });    builder.show();//顯示Dialog對話方塊  }}

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.