国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android常用對(duì)話(huà)框使用大全

2019-12-12 04:17:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

日常生活中我們隨處可見(jiàn)對(duì)話(huà)框,上面有很多提示信息,更加方便提示用戶(hù)進(jìn)行不同的操作。

一、對(duì)話(huà)框的兩個(gè)特點(diǎn)和一些常見(jiàn)的對(duì)話(huà)框

1.當(dāng)彈出對(duì)話(huà)框是會(huì)結(jié)束UI線(xiàn)程(即主線(xiàn)程);

2.當(dāng)前的Activity會(huì)失去焦點(diǎn);

3.消息對(duì)話(huà)框、確認(rèn)對(duì)話(huà)框、列表對(duì)話(huà)框、單選和多選對(duì)話(huà)框、自定義對(duì)話(huà)框

二、對(duì)話(huà)框的組成(一般有四部分組成)

1.圖標(biāo)

2.標(biāo)題

3.內(nèi)容

4.按鈕

這里寫(xiě)圖片描述

三、那么如何創(chuàng)建一個(gè)對(duì)話(huà)框呢?(四步組成)

1.第一步創(chuàng)建AlertDialog.Builder對(duì)象(建造者模式)

2.第二步設(shè)置圖標(biāo)、標(biāo)題、內(nèi)容和按鈕等區(qū)域

3.第三步調(diào)用create()方法來(lái)創(chuàng)建(一般自動(dòng)調(diào)用)

4.第四步調(diào)用show()方法來(lái)顯示

四、點(diǎn)擊跳轉(zhuǎn)界面和長(zhǎng)按彈出對(duì)話(huà)框的業(yè)務(wù)邏輯

1.接著上面的學(xué)的ListView來(lái)實(shí)現(xiàn)常見(jiàn)的操作,在日常生活中,我們經(jīng)常聊qq,在聊天列表中,但我們點(diǎn)擊某一行時(shí),會(huì)進(jìn)入聊天界面,當(dāng)我們長(zhǎng)按某一行時(shí),會(huì)彈出置頂和刪除小提示。

2.MainActivity.java代碼如下

package com.oldtogether.adapterdemo2;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnLongClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public class MainActivity4 extends ActionBarActivity implements OnItemClickListener, OnItemLongClickListener { // 創(chuàng)建數(shù)組,采用for循環(huán)進(jìn)行遍歷 private int[] imageIds = new int[] { R.drawable.daxiang, R.drawable.maozi, R.drawable.nangua, R.drawable.nanguobq, R.drawable.tiaopi, R.drawable.xiaolian, R.drawable.xin, R.drawable.weixin, R.drawable.hongx, R.drawable.xm }; private String[] titles = new String[] { "賣(mài)萌大象", "圣誕帽子", "憤怒南瓜", "難過(guò)表情", "調(diào)皮表情", "我倩的笑臉表情", "oldtogether愛(ài)心", "微信", "粉色少女心", "一代擼" }; private String[] versions = new String[] { "版本:1.10", "版本:2.10", "版本:1.11", "版本:2.12", "版本:3.10", "版本:2.20", "版本:5.20", "版本:1.23", "版本:2.21", "版本:2.40", }; private String[] sizes = new String[] { "大小:32.01M", "大小:32.02M", "大小:23.01M", "大小:11.01M", "大小:41.01M", "大小:11.01M", "大小:33.01M", "大小:33.01M", "大小:33.01M", "大小:33.01M", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview); // 1、過(guò)的ListView對(duì)象 ListView lv = (ListView) findViewById(R.id.lv_play); // 2、數(shù)據(jù)源 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < titles.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("logo", imageIds[i]); map.put("title", titles[i]); map.put("version", versions[i]); map.put("size", sizes[i]); list.add(map); } // 3、設(shè)置適配器 MyAdapter3 adapter3 = new MyAdapter3(this); adapter3.setList(list);// 傳入數(shù)據(jù) // 4、關(guān)聯(lián)適配器 lv.setAdapter(adapter3); // 5、為L(zhǎng)istView設(shè)置事件監(jiān)聽(tīng)器(一下兩個(gè)常用事件),讓主MainActivity2實(shí)現(xiàn)接口,并重寫(xiě)方法 lv.setOnItemClickListener(this); lv.setOnItemLongClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { /* 創(chuàng)建了一個(gè)意圖對(duì)象,調(diào)用setClass方法表明“在那個(gè)Activity中調(diào)用那個(gè)Activity”次意圖*/  Intent intent = new Intent(); intent.setClass(getApplicationContext(), DetailActivity.class); //獲得點(diǎn)擊行的數(shù)據(jù) HashMap <String,Object> itemMap= (HashMap<String,Object>) parent.getItemAtPosition(position); intent.putExtra("index", ""+position);//獲得編號(hào) intent.putExtra("title", ""+itemMap.get("title"));//獲得標(biāo)題 startActivity(intent); } @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示"); builder.setMessage("這是一個(gè)簡(jiǎn)單的標(biāo)題"); builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //點(diǎn)擊對(duì)話(huà)框中的確定按鈕會(huì)出現(xiàn)一個(gè)Toast提示框 Toast.makeText(MainActivity4.this, "點(diǎn)擊了確定", Toast.LENGTH_LONG).show(); } }); builder.create().show(); return true; /* * 返回值代表了事件的消化 1、true:表示消化掉事件,事件不會(huì)繼續(xù)傳遞 2、false:表示不消化事件,事件繼續(xù)傳遞 * 結(jié)論:如果希望長(zhǎng)按事件后,不在出現(xiàn)點(diǎn)擊事件,則應(yīng)將返回值設(shè)置為true */ }}

3.代碼簡(jiǎn)潔之“連點(diǎn)”

1).通過(guò)創(chuàng)建者模式獲得Builder對(duì)象,然后通過(guò)連點(diǎn)方式調(diào)用其方法可使代碼簡(jiǎn)化;

2).連點(diǎn)使用的原則是,所調(diào)用的方法返回值是當(dāng)前對(duì)象本身;

3).下面是通過(guò)連點(diǎn)在長(zhǎng)按方法中實(shí)現(xiàn)此相同功能的代碼。

@Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { new AlertDialog.Builder(this) .setIcon(R.drawable.ic_launcher) .setTitle("消息提示") .setMessage("這是一個(gè)簡(jiǎn)單的標(biāo)題") .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity4.this, "點(diǎn)擊了確定", Toast.LENGTH_LONG).show(); } }) .show(); return true; }

4.運(yùn)行結(jié)果

這里寫(xiě)圖片描述
點(diǎn)擊了對(duì)話(huà)框中的確定按鈕 
這里寫(xiě)圖片描述

五、上面是消息對(duì)話(huà)框的實(shí)現(xiàn),再次緊接著學(xué)習(xí)確認(rèn)對(duì)話(huà)框

1.隨處可見(jiàn)的確認(rèn)對(duì)話(huà)框,用途:經(jīng)常用于一些征求用戶(hù)決定的操作,比如退出數(shù)據(jù)、刪除數(shù)據(jù)、確認(rèn)支付等。

2.直接貼代碼

package com.oldtogether.adapterdemo2;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnLongClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public class MainActivity4 extends ActionBarActivity implements OnItemClickListener, OnItemLongClickListener { // 創(chuàng)建數(shù)組,采用for循環(huán)進(jìn)行遍歷 private int[] imageIds = new int[] { R.drawable.daxiang, R.drawable.maozi, R.drawable.nangua, R.drawable.nanguobq, R.drawable.tiaopi, R.drawable.xiaolian, R.drawable.xin, R.drawable.weixin, R.drawable.hongx, R.drawable.xm }; private String[] titles = new String[] { "賣(mài)萌大象", "圣誕帽子", "憤怒南瓜", "難過(guò)表情", "調(diào)皮表情", "我倩的笑臉表情", "oldtogether愛(ài)心", "微信", "粉色少女心", "一代擼" }; private String[] versions = new String[] { "版本:1.10", "版本:2.10", "版本:1.11", "版本:2.12", "版本:3.10", "版本:2.20", "版本:5.20", "版本:1.23", "版本:2.21", "版本:2.40", }; private String[] sizes = new String[] { "大小:32.01M", "大小:32.02M", "大小:23.01M", "大小:11.01M", "大小:41.01M", "大小:11.01M", "大小:33.01M", "大小:33.01M", "大小:33.01M", "大小:33.01M", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview); // 1、過(guò)的ListView對(duì)象 ListView lv = (ListView) findViewById(R.id.lv_play); // 2、數(shù)據(jù)源 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < titles.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("logo", imageIds[i]); map.put("title", titles[i]); map.put("version", versions[i]); map.put("size", sizes[i]); list.add(map); } // 3、設(shè)置適配器 MyAdapter3 adapter3 = new MyAdapter3(this); adapter3.setList(list);// 傳入數(shù)據(jù) // 4、關(guān)聯(lián)適配器 lv.setAdapter(adapter3); // 5、為L(zhǎng)istView設(shè)置事件監(jiān)聽(tīng)器(一下兩個(gè)常用事件),讓主MainActivity2實(shí)現(xiàn)接口,并重寫(xiě)方法 lv.setOnItemClickListener(this); lv.setOnItemLongClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { /* 創(chuàng)建了一個(gè)意圖對(duì)象,調(diào)用setClass方法表明“在那個(gè)Activity中調(diào)用那個(gè)Activity”次意圖*/  Intent intent = new Intent(); intent.setClass(getApplicationContext(), DetailActivity.class); //獲得點(diǎn)擊行的數(shù)據(jù) HashMap <String,Object> itemMap= (HashMap<String,Object>) parent.getItemAtPosition(position); intent.putExtra("index", ""+position);//獲得編號(hào) intent.putExtra("title", ""+itemMap.get("title"));//獲得標(biāo)題 startActivity(intent); } @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //長(zhǎng)按之確定對(duì)話(huà)框 new AlertDialog.Builder(this) .setIcon(R.drawable.ic_launcher) .setTitle("你確定要退出嗎?") .setNegativeButton("取消", null)//null,說(shuō)明不進(jìn)行自定義的任何操作,只是單純的關(guān)閉當(dāng)前對(duì)話(huà)框,又停在原界面 .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish();//關(guān)閉當(dāng)前Activity } }) .show(); return true; }}

3.運(yùn)行結(jié)果

這里寫(xiě)圖片描述

4.補(bǔ)充:當(dāng)點(diǎn)擊取消是會(huì)停留在當(dāng)前Activity;當(dāng)點(diǎn)擊確定會(huì)退出當(dāng)前Activity,返回到模擬器主界面。

六、列表對(duì)話(huà)框

1.用途:以列表的形式展示數(shù)據(jù)、列表項(xiàng)可點(diǎn)擊、需要一個(gè)數(shù)組資源作為數(shù)據(jù)源。

2.核心方法:setItems();在準(zhǔn)備一個(gè)數(shù)組資源;

3.代碼如下:

package com.oldtogether.adapterdemo2;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnLongClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public class MainActivity4 extends ActionBarActivity implements OnItemClickListener, OnItemLongClickListener { // 創(chuàng)建數(shù)組,采用for循環(huán)進(jìn)行遍歷 private int[] imageIds = new int[] { R.drawable.daxiang, R.drawable.maozi, R.drawable.nangua, R.drawable.nanguobq, R.drawable.tiaopi, R.drawable.xiaolian, R.drawable.xin, R.drawable.weixin, R.drawable.hongx, R.drawable.xm }; private String[] titles = new String[] { "賣(mài)萌大象", "圣誕帽子", "憤怒南瓜", "難過(guò)表情", "調(diào)皮表情", "我倩的笑臉表情", "oldtogether愛(ài)心", "微信", "粉色少女心", "一代擼" }; private String[] versions = new String[] { "版本:1.10", "版本:2.10", "版本:1.11", "版本:2.12", "版本:3.10", "版本:2.20", "版本:5.20", "版本:1.23", "版本:2.21", "版本:2.40", }; private String[] sizes = new String[] { "大小:32.01M", "大小:32.02M", "大小:23.01M", "大小:11.01M", "大小:41.01M", "大小:11.01M", "大小:33.01M", "大小:33.01M", "大小:33.01M", "大小:33.01M", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview); // 1、過(guò)的ListView對(duì)象 ListView lv = (ListView) findViewById(R.id.lv_play); // 2、數(shù)據(jù)源 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < titles.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("logo", imageIds[i]); map.put("title", titles[i]); map.put("version", versions[i]); map.put("size", sizes[i]); list.add(map); } // 3、設(shè)置適配器 MyAdapter3 adapter3 = new MyAdapter3(this); adapter3.setList(list);// 傳入數(shù)據(jù) // 4、關(guān)聯(lián)適配器 lv.setAdapter(adapter3); // 5、為L(zhǎng)istView設(shè)置事件監(jiān)聽(tīng)器(一下兩個(gè)常用事件),讓主MainActivity2實(shí)現(xiàn)接口,并重寫(xiě)方法 lv.setOnItemClickListener(this); lv.setOnItemLongClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { /* 創(chuàng)建了一個(gè)意圖對(duì)象,調(diào)用setClass方法表明“在那個(gè)Activity中調(diào)用那個(gè)Activity”次意圖*/  Intent intent = new Intent(); intent.setClass(getApplicationContext(), DetailActivity.class); //獲得點(diǎn)擊行的數(shù)據(jù) HashMap <String,Object> itemMap= (HashMap<String,Object>) parent.getItemAtPosition(position); intent.putExtra("index", ""+position);//獲得編號(hào) intent.putExtra("title", ""+itemMap.get("title"));//獲得標(biāo)題 startActivity(intent); } @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //列表對(duì)話(huà)框 final String [] sites={"打印店","男生公寓","女生公寓","清真食堂","大眾食堂","圖書(shū)館","洗浴中心"};//設(shè)置為final(常量)的原因是可以穿透作用域 new AlertDialog.Builder(this) .setTitle("蘭州城市學(xué)院培黎校區(qū)") .setItems(sites, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //參數(shù) which代表了消息對(duì)話(huà)框中的第幾項(xiàng) Toast.makeText(MainActivity4.this, "您選擇了"+sites[which], Toast.LENGTH_LONG).show(); } }) .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //關(guān)閉的對(duì)話(huà)框的第二種方式,重寫(xiě)一個(gè)沒(méi)有任何邏輯的空方法 } }) .show(); return true; }}

4.運(yùn)行結(jié)果

這里寫(xiě)圖片描述
這里寫(xiě)圖片描述

七、單選對(duì)話(huà)框

1.單選對(duì)話(huà)框,用途:需要用戶(hù)進(jìn)行單行選擇是進(jìn)行使用;核心方法:setSingleChoiceItems();

2.實(shí)現(xiàn)步驟

1).準(zhǔn)備一個(gè)數(shù)組資源(一般設(shè)置為常量數(shù)組,為了方便穿透作用域);

2).調(diào)用setSingleChioceItems()設(shè)置單選列表項(xiàng)。

3.代碼實(shí)現(xiàn)(直接在onItemLongClick寫(xiě)Dialog相關(guān)代碼,其他代碼一樣)

//在主類(lèi)中的全局變量1、暫存用戶(hù)所選的評(píng)分級(jí)別;(另外如果將此變量初始值設(shè)為0,直接點(diǎn)擊確定會(huì)出現(xiàn)1星評(píng)分,有bug)2、方便穿透作用域;int selectedId = -1; @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //長(zhǎng)按之單選對(duì)話(huà)框 final String [] stars={"1星","2星","2星","3星","4星","5星"};//設(shè)置為final(常量)的原因是可以穿透作用域 new AlertDialog.Builder(this) .setTitle("大胸弟,來(lái)個(gè)5星的評(píng)分吧!") .setSingleChoiceItems(stars, -1, new DialogInterface.OnClickListener() { /* * 第一個(gè)參數(shù):所要顯示的資源數(shù)組; * 第二個(gè)參數(shù):在單選對(duì)話(huà)框列表中默認(rèn)情況先所選擇的行標(biāo)(這里設(shè)置為-1的原因是數(shù)組默認(rèn)情況先下標(biāo)從0開(kāi)始,如果將此參設(shè)置為0,跳出單選對(duì)話(huà)框時(shí)默認(rèn)情況下會(huì)為1星評(píng)分,有bug); * 第三個(gè)參數(shù):點(diǎn)擊某行事件,自定義業(yè)務(wù)邏輯代碼(這里只用簡(jiǎn)單的Toast來(lái)實(shí)現(xiàn)); * 補(bǔ)充:dialog.dismiss()讓對(duì)話(huà)框消失。 */ @Override public void onClick(DialogInterface dialog, int which) { selectedId = which;//在用戶(hù)單選時(shí)起到一個(gè)暫存的作用,方便確定是被引用 Toast.makeText(MainActivity4.this, "您當(dāng)前選擇了:"+stars[which], Toast.LENGTH_LONG).show(); } }) .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity4.this, "您最終的決定是:"+stars[selectedId], Toast.LENGTH_LONG).show(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //空操作的方法 } }) .show(); return true; }

4.運(yùn)行結(jié)果

這里寫(xiě)圖片描述
這里寫(xiě)圖片描述
這里寫(xiě)圖片描述

八、多選對(duì)話(huà)框

1.多選對(duì)話(huà)框。用途:提供用戶(hù)進(jìn)行多項(xiàng)選擇;核心方法setMultiChoiceItems();(multi:英語(yǔ)中多的意思)

2.實(shí)現(xiàn)步驟

1).準(zhǔn)備一個(gè)數(shù)組資源;

2).調(diào)用setMultiChoiceItems()方法設(shè)置多選項(xiàng)列表;

3.代碼的實(shí)現(xiàn)(同理直接貼onItemLongClick()方法代碼)

ArrayList<Integer> choice = new ArrayList<>();//創(chuàng)建一個(gè)ArrayList用來(lái)保存在Dialog中所選擇的選項(xiàng),同理設(shè)置為全局變量為了穿透作用域 @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //長(zhǎng)按之多選框?qū)υ?huà)框 final String [] interests={"看書(shū)","打籃球","大lol","聽(tīng)音樂(lè)","看電影","跑步"};//設(shè)置為final(常量)的原因是可以穿透作用域 new AlertDialog.Builder(this) .setIcon(R.drawable.ic_launcher) .setTitle("你的愛(ài)好是什么?") /* * setMultiChoiceItems()方法中的三個(gè)參數(shù) * 第一個(gè)參數(shù):資源數(shù)組; * 第二個(gè)參數(shù):默認(rèn)情況下的初始值,這里因?yàn)槭嵌噙x,所以設(shè)置為boolean類(lèi)型的數(shù)組; * 第三個(gè)參數(shù):多選框的點(diǎn)擊事件; *  */ .setMultiChoiceItems(interests, new boolean []{false,false,false,false,false,false}, new DialogInterface.OnMultiChoiceClickListener() {  @Override  public void onClick(DialogInterface dialog, int which, boolean isChecked) {  /*  * 第一個(gè)參數(shù):dialog對(duì)象;  * 第二個(gè)參數(shù):多選對(duì)話(huà)框中用戶(hù)所選中的項(xiàng);  * 第三個(gè)參數(shù):是否選中,true為選中,false為沒(méi)有選中  *   */  //選中則添加,后悔是時(shí)還可以remove掉  if(isChecked){  choice.add(which);  }else{  choice.remove(which);  }  Toast.makeText(MainActivity4.this, "您當(dāng)前的選擇是:"+choice.toString(), Toast.LENGTH_LONG).show();  } }) .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity4.this, "您最終的決定是:"+choice.toString(), Toast.LENGTH_LONG).show(); } }) .setNegativeButton("取消", null) .show(); return true; }}

4.運(yùn)行結(jié)果

這里寫(xiě)圖片描述
這里寫(xiě)圖片描述

九、心得總結(jié)

1.提到對(duì)話(huà)框可以直接腦補(bǔ)出對(duì)話(huà)款的組成,和創(chuàng)建對(duì)話(huà)框的步驟;

2.在單選對(duì)話(huà)框中設(shè)置默認(rèn)初始值時(shí),“-1”的巧用,關(guān)鍵點(diǎn)是數(shù)組下標(biāo)從0開(kāi)始,容易出現(xiàn)bug;

3.關(guān)閉對(duì)話(huà)框的兩種方法(在點(diǎn)擊負(fù)面按鈕時(shí))。第一種:在次方法中的第二個(gè)參數(shù)添加一個(gè)重操作即沒(méi)有任何邏輯代碼點(diǎn)擊事件即可;第二種:直接將第二個(gè)參數(shù)設(shè)置為null;

4.兩次經(jīng)典的穿透作用域(附帶魔法和物理傷害)。第一次在定義數(shù)據(jù)資源的時(shí)候,將數(shù)組資源用final修飾,讓其為常量,方便在其他方法中調(diào)用,即穿透作用域;第二次在創(chuàng)建單選和多選對(duì)話(huà)框時(shí),setSingleChioceItems()和setMultiChoiceItems()方法中有時(shí)候用戶(hù)可能會(huì)修改第一次的選擇,而將次選擇暫存在一個(gè)最外層類(lèi)的成員變量中(這里的int selectedId和泛型ArrayList對(duì)象),方便在點(diǎn)擊確定按鈕即調(diào)用onClick方法是被利用,同樣再次穿透了作用域;

5.總之,日常生活中常見(jiàn)各種對(duì)話(huà)框,合理利用對(duì)話(huà)框會(huì)更好的實(shí)現(xiàn)界面與用戶(hù)之間的交流。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 和龙市| 巧家县| 尤溪县| 鄂托克旗| 兰考县| 德阳市| 五莲县| 漾濞| 嵊泗县| 赤水市| 石柱| 哈尔滨市| 萍乡市| 江源县| 平阴县| 永德县| 田林县| 池州市| 基隆市| 津南区| 梁河县| 台前县| 大同县| 深圳市| 苗栗县| 建湖县| 津市市| 耿马| 霞浦县| 辉县市| 嘉禾县| 昆山市| 安龙县| 景泰县| 滦南县| 涪陵区| 辰溪县| 安福县| 涪陵区| 丰都县| 瑞昌市|