安卓單選對話方塊之帶確定和取消按鈕
安卓單選對話方塊很容易就寫好了:
//...
AlertDialog dialog = builder.setTitle(R.string.please_choose)
.setSingleChoiceItems(itemStrs, chooseItemIndex, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//...
}
}
)
.show();
就ok了。
在setSingleChoiceItems中,第三個引數回調了which,即選中了的單選按鈕的索引下標。在此回撥中處理,就是按一下選中,立馬做出相應的修改,這樣子缺少了“取消”,“反悔”的過程。
不過其實這樣子就足夠了。增加了確定和取消按鈕,處理反而變得比較麻煩。
下圖封裝了一個性別選擇對話方塊:
完整 程式碼如下:
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AlertDialog.Builder;
/**
* 性別選擇對話方塊
* Created by lu on 2017/9/1 15:42
*/
public class ChooseSexDialog {
/**
* @param sex 初始時的性別。0女,1男
* @param listener 確定按鈕監聽。
*/
public static Dialog show(Context context, int sex, final OnClickOkListener listener){
Builder builder = new Builder(context);
//下標正好對應性別的值
String[] itemStrs = new String[]{
context.getString(R.string.girl),
context.getString(R.string.boy)
};
if (sex > 1) {
sex = 1;
}
final int chooseItemIndex = sex;
AlertDialog dialog = builder.setTitle(R.string.please_choose)
.setSingleChoiceItems(itemStrs, chooseItemIndex, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (listener != null){
listener.sexValue = which;
listener.isItemClick = true;
}
}
}
)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (listener!=null){
if (listener.isItemClick){//當點選選擇過
listener.onPressOK(dialog,listener.sexValue);
}else {//未選擇過,直接返回上一次選擇的item的下標。
listener.onPressOK(dialog,chooseItemIndex);
}
}
dialog.dismiss();
}
}).show();
return dialog;
}
public static abstract class OnClickOkListener{
private int sexValue;
public boolean isItemClick = false;
public abstract void onPressOK(DialogInterface alertDialog, int sexValue);
}
}
——end
相關推薦
安卓單選對話方塊之帶確定和取消按鈕
安卓單選對話方塊很容易就寫好了: //... AlertDialog dialog = builder.setTitle(R.string.please_choose) .setSingleChoiceItems(itemS
android彈出對話方塊中帶有確定和取消對話方塊帶事件的應用
上次看了一個關於android中對話方塊的使用,其中對帶確定和取消的對話方塊講的並不詳細,自己補全了一下,當確定和取消按鈕中有事件時的情況,沒事件時用null就行了 new AlertDialog.Builder(this).setTitle("標題").setMessag
Android 實現單選對話方塊
專案中有一次用到了單選對話方塊,突然發現因為許久不用,我竟然對這樣一個小小的知識點有點陌生,這還得了?正好最近打算開始寫自己的部落格,不為其他,只為記錄自己的成長,就從這一篇開始吧! 具體實現步驟如下: 1.宣告一個全域性陣列,作為對話方塊列表的內容 String[] Item
Android AlertDialog ————單選對話方塊
//彈出一個單選對話方塊 private void showSingleDialog() { //[1]構造對話方塊的例項 AlertDialog.Builder builder = new Builder(this); builder.se
安卓中關於對話方塊的四種寫法
單選框public void onClick(View v) { Builder builder = new AlertDialog.Builder(this);// 建立alertDialog物件 builder.setTitle("請選擇你喜歡的科目");
Android 點選AlertDialog上的確定和取消按鈕,使對話方塊不消失
Android中的AlertDialog彈出框在被點選時, 無論點選哪個按鈕都會關閉視窗。 但是有時候我們不需要它關閉,例如輸入使用者名稱和密碼,輸錯了,提示重新輸入。 那麼怎麼做到點選確定或者取消按鈕不關閉對話方塊呢? 直接上程式碼 new AlertDialog.Bui
dialog點選對話方塊之外的區域禁止取消,點選返回按鈕取消對話方塊的同時關閉當前activity
private void showIsLoadDraftDialog(final EPrescriptionVO ePrescriptionVO){ AlertDialog.Build
onSubmit 檢查是否有衝突修改,彈出對話方塊讓user確定或者取消
// Warn when two users are editing the same record function onSubmit() { var updatedOn = gel('onLoad_sys_updated_on').value; if (!updatedOn)
安卓對話方塊之---單選框(RadioButton)
簡單概括一下原理:要完成單選框顯示,我們需要使用到RadioGroup和RadioButton(單選框),RadioGroup用於對單選框進行分組,相同組內的單選框只有一個單選框能被選中。(例子程式碼請見下方備註欄) RadioGroup.check(R.id.dotNe
安卓對話方塊之----建立帶多選項列表的對話方塊
1、我們在佈局檔案中用一個按鈕進行測試,給按鈕註冊事件,下面是佈局檔案的程式碼: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="h
(shell練習1)zenity圖形介面之資訊對話方塊和單複選對話方塊,以及while,for迴圈的練習
涵蓋內容包括 1,shell的while迴圈 2,shell的for迴圈 3,shell關於字串的擷取(精華之處) 4,shell的選擇分支語句if 5,zenity資訊對話方塊 6,zenity單選對話方塊 7,zenity複選對話方塊 8,shell不
Android 對話方塊總結(確定取消,單選,多選,進度條,具體的進度條)
/** * 彈出確定取消對話方塊 * * @param view */ public void click01(View view) { // 工廠設計模式,得到建立對話方塊的工廠 AlertDialog
《安卓-深入淺出MVVM教程》之應用篇
getter apk 更新 processor 技術 tac bind end mat 背景 這幾年 MVP 架構在安卓屆非常流行,幾乎已經成為主流框架,它讓業務邏輯 和 UI操作相對獨立,使得代碼結構更清晰。 MVVM 在前端火得一塌糊塗,而在安卓這邊卻基本沒見到幾個人在
Android基礎控件——AlertDialog、ProgressDialog實現單選對話框、多選對話框、進度條對話框、輸入框對話框
事先 pre 進度 技術分享 android基礎 水平 介紹 iss support AlertDialog、ProgressDialog實現單選對話框、多選對話框、進度條對話框、輸入框對話框 事先說明: 對話框應選用android.support.v7這個包底下的組件
安卓投屏助手(B1358)之輔助調試
技術 ash 命令 tro mob 16px lan log 遠程控制 Android遠程桌面助手的中文版——安卓投屏助手正式上線。安卓投屏和遠程控制的軟件其實已經非常多了,如Vysor、Total Control、Mobizen、Apo
C# 對話方塊之FolderBrowserDialog
像saveFileDialog,openFileDialog,colorDialog,fontDialog前面已經涉及了,還差一個FolderBrowserDialog,所有對話方塊控制元件就介紹完了,下面就解決完這個小尾巴。 1、新增控制元件textBox1,button1 2、程式
安卓中高階開發面試知識點之——快取
前言 幾乎所有的專案都做了快取,但是快取做的怎麼樣,其實只有我們自己知道。快取做的好,沒有網路也能流暢的使用;再多的資料請求都不會出現卡頓延遲等待很久的情況。 程式中除了圖片快取(三級快取),還有資訊快取。當用戶無法聯網時,app會預設顯示快取的資料。 前言快取方式 SQLite 下載完資料檔案後,
安卓點選home鍵重啟
主要原因是:每次啟動Intent導致新建立Task的時候,該Task會記錄導致其建立的Intent;而如果後續需要有一個新的與建立Intent完全一致(完全一致定位為:啟動類,action、category等等全部一樣,不可多項也不可缺少),那麼該Intent並不會觸發Activity的新建啟動,而只會將已經
Android AlertDialog ————多選對話方塊
//彈出一個多選對話方塊 private void showMutilDialog() { //[1]構造對話方塊的例項 AlertDialog.Builder builder = new Builder(this); builder.setT
Android開發(AlertDialog對話方塊自定義佈局和多選列表不共存的替代辦法)
這個實現功能花了一點時間,當時忙了很晚,只怪當時沒有想出其他解決辦法。言歸正傳。 前幾天有這麼一個小夥伴,在開發有這樣的地圖app,該地圖app有多個地圖圖層,這些地圖圖層可提供給使用者操作,比如說圖層的顯示控制,以及選擇需要的圖層供查詢。由於該地圖app在主介面已經佈局很