日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中如何实现多个框,android几种不同对话框的实现方式

發布時間:2023/12/18 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中如何实现多个框,android几种不同对话框的实现方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

app中肯定是少不了與用戶交互的各種dialog,下面給大家介紹幾種提示框的提示。

一般創建一個對話框需要經過以下幾步:

1、創建AlertDialog.Builder對象。

2、調用AlertDialog.Builder的setTitle()或者setCustomTitle()方法設置標題。

3、調用AlertDialog.Builder的setIcon()方法設置標題logo。

4、調用AlertDialog.Builder的相關方法設置對話框內容。

5、調用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多個按鈕。

6、調用AlertDialog.Builder的create()方法創建AlertDialog對象,再調用AlertDialog對象的show()方法將該對話框顯示出來。

其中,第4步設置對話框的內容,這里有6種方法來指定:

·setMessage():設置對話框內容為簡單文本內容。

·setItems():設置對話框內容為簡單列表項。

·setSingleChoiceItems():設置對話框內容為單選列表項。

·setMultiChoiceItems():設置對話框內容為多選列表項。

·setAdapter():設置對話框內容為自定義列表項。

·setView():設置對話框內容為自定義View。

下面通過幾個實例來介紹一下AlertDialog的用法。

1、顯示提示消息的對話框。

/**

* 顯示提示消息的對話框

* @author codingblock --

* @param context 上下文

* @param title 對話框標題

* @param message 對話框提示內容

* @return

*/

public AlertDialog.Builder simpleDialog(final Context context, String title, String message){

AlertDialog.Builder builder = new AlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setMessage(message)

.setPositiveButton("完成", null)

.setNegativeButton("取消", null);

return builder;

}

上面的代碼是將一個簡單提示對話框封裝成了一個方法,調用時可以省去重復代碼,直接傳遞title,message等參數即可,其中該對話框用設置了icon,title等屬性,還調用了setPositiveButton()和setNegativeButton()方法添加按鈕,因為該方法(simpleDialog())在這里僅提供調用,所以沒有實現按鈕的具體功能,可在實際調用中重寫這兩個方法從而實現具體功能。

調用方式如下,其他幾種方式的對話框與此方法調用方式基本一致,以下就不再一一給出。

public void onClickSimple(View v){

builder = new Dialog().simpleDialog(this, "簡單對話框", "對話框內容");

builder.setPositiveButton("確定", new OnClickListener() {

@Override

public void onClick(DialogInterface arg, int arg) {

//確定

}

})

.setNegativeButton("取消", new OnClickListener() {

@Override

public void onClick(DialogInterface arg, int arg) {

//取消

}

});

builder.create().show();

}

除此之外,AlertDialog.Builder還提供了setNeutralButton()方法來添加一個裝飾性的按鈕。因此Android的對話一共可以生成三個按鈕的對話框。

2、簡單列表項對話框

/**

* 簡單列表項對話框

* @author codingblock --

* @param context 上下文

* @param title 對話框標題

* @param items 對話框列表項CharSequence類型數組,也可根據需要改成其他類型

* @return

*/

public AlertDialog.Builder simpleListDialog(final Context context, String title, final CharSequence[] items){

AlertDialog.Builder builder = new AlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setItems(items, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(context, "您選中了:"+ items[which], Toast.LENGTH_SHORT).show();

}

});

return builder;

}

上面的代碼通過調用setItems()方法為對話框設置了多個列表項,其中setItems的第一個參數可以是Charsequence和int類型。

3、單選列表項對話框

/**

* 單選列表項對話框

* @author codingblock --

* @param context 上下文

* @param title 對話框標題

* @param items 對話框列表項 CharSequence類型數組

* @return

*/

public AlertDialog.Builder simpleChoiceDialog(final Context context, String title, final CharSequence[] items){

AlertDialog.Builder builder = new AlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

//第二個參數為默認選中項, :代表默認選中第一項

.setSingleChoiceItems(items, , new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(context, "您選中了:"+ items[which], Toast.LENGTH_SHORT).show();

}

});

return builder;

}

以上代碼通過調用setSingleChoiceItems()方法創建了帶單選列表的對話框。調用setSingleChoiceItems()方法時既可傳入數組作為參數,也可傳入Cursor(相當于數據庫查詢結果集)作為參數,也可傳入ListAdapter作為參數。另外,如果傳入ListAdapter作為參數,則由ListAdapter來提供多個列表項組件。

4、多選列表對話框

/**

* 多選列表項對話框

* @author codingblock --

* @param context 上下文

* @param title 對話框標題

* @param items 對話框列表項 CharSequence類型數組

* @param checked 對話框初始選定狀態 boolean類型數組

* @return

*/

public AlertDialog.Builder multiChoiceDialog(final Context context, String title, final CharSequence[] items, final boolean[] checked){

AlertDialog.Builder builder = new AlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

//第二個參數為默認選中項,是一個boolean型的數組

.setMultiChoiceItems(items, checked, null)

.setPositiveButton("完成", null)

.setNegativeButton("取消", null);

return builder;

}

以上代碼通過調用setMultiChoiceItems()方法創建了一個多選列表的對話框。在調用setMultiChoiceItems()時既可傳入數組作為參數,也可傳入Cursor作為參數。需要注意的時在調用setMultiChoiceItems()方法添加多選列表時,還需要傳入一個boolean[]參數,該參數有兩個作用:①設置初始化時選中哪些列表項。②該boolean[]類型的參數還可用于動態的獲取多選列表項的選中狀態。

5、自定義列表項對話框

/**

* 自定義列表項對話框

* @author codingblock --

* @param context 上下文

* @param title 對話框標題

* @param items 對話框列表項 String類型數組,也可更具需要改成其他類型

* @return

*/

public AlertDialog.Builder customListDialog(final Context context, String title, String[] items){

AlertDialog.Builder builder = new AlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setAdapter(new ArrayAdapter(context, R.layout.array_item, R.id.tv_item, items), null)

.setPositiveButton("完成", null)

.setNegativeButton("取消", null);

return builder;

}

以上代碼通過setAdapter()設置了對話框的內容,該方法需要傳入一個Adapter參數,這樣的話,就可以通過Adapter實現多個組件的繪制。其中setAdapter方法中調用的布局文件array_item.xml代碼如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:padding="dp"

android:orientation="horizontal">

android:id="@+id/iv_img"

android:layout_width="dp"

android:layout_height="dp"

android:src="@drawable/ic_launcher" />

android:id="@+id/tv_item"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="dp"

android:gravity="center"

android:text="列表項" />

其實,不僅setAdapter()方法可以接受Adapter作為參數,setSingleChoice()方法也可以接受Adapter參數,也就是說,使用setSingleChoice()方法也可以實現自定義列表項對話框。

6、自定義View的對話框

/**

* 自定義View的對話框

* @author codingblock --

* @param context 上下文

* @param title 對話框標題

*/

public AlertDialog.Builder customeViewDialog(final Context context, String title){

LinearLayout loginDialog = (LinearLayout)LayoutInflater.from(context).inflate(R.layout.login_dialog, null);

AlertDialog.Builder builder = new AlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setView(loginDialog)

.setPositiveButton("完成", null)

.setNegativeButton("取消", null);

return builder;

}

以上代碼通過setView()方法調用自定義的布局文件顯示界面。代碼中首先顯示裝載了login_dialog.xml文件,并返回該文件對應的View,接下來程序調用了setView()方法來顯示View。

其中的login_dialog.xml文件代碼如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="dp"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/tv_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用戶名:"/>

android:id="@+id/et_name"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:focusable="true"

android:hint="input name" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/tv_pwd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密碼:"/>

android:id="@+id/et_pwd"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="input password" />

以上介紹了六種不同對話框的實現方式,希望對大家有所幫助。

總結

以上是生活随笔為你收集整理的Android中如何实现多个框,android几种不同对话框的实现方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。