最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android使用AlertDialog實(shí)現(xiàn)彈出菜單的詳細(xì)過(guò)程

 更新時(shí)間:2024年04月27日 09:30:53   作者:阿迷創(chuàng)客  
在Android經(jīng)常會(huì)用到AlertDialog,下面這篇文章主要給大家介紹了關(guān)于Android使用AlertDialog實(shí)現(xiàn)彈出菜單的詳細(xì)過(guò)程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

最近又開(kāi)始搗鼓APP,許多api , class都忘記怎么用了,樓下使用AlertDialog實(shí)現(xiàn)個(gè)彈出菜單,結(jié)果直接crash,查了半天,終于即將,記錄一下……

1 實(shí)現(xiàn)代碼

  AlertDialog.Builder mBuilder = new AlertDialog.Builder(mContext);//will be crash: android.content.res.Resources$NotFoundException: Resource ID #0x0
        mBuilder = new AlertDialog.Builder(this);
        //填充列表數(shù)據(jù)
        final String[] items = new String[]{"選項(xiàng)1", "選項(xiàng)2", "選項(xiàng)3"};
        mBuilder.setTitle("選擇一項(xiàng)"); // 設(shè)置標(biāo)題
        mBuilder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(mContext, "clicked:"+ items[which], Toast.LENGTH_SHORT).show();
            }
        });

        mBtnApp6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // 創(chuàng)建并顯示對(duì)話框
                mBuilder.create().show();//界面上mBtnApp6按鈕點(diǎn)擊后執(zhí)行dialog顯示

            }

        });

2 實(shí)現(xiàn)效果

3 增加數(shù)據(jù)項(xiàng)的效果

4 遇到的錯(cuò)誤

  • android.content.res.Resources$NotFoundException: Resource ID #0x0
  • 原因:new AlertDialog.Builder(mContext) , crash
  •      或 new AlertDialog.Builder(getApplicationContext()) , crash
    
  • 解決辦法:new AlertDialog.Builder(this), OK
--------- beginning of crash
04-18 17:08:40.940  6011  6011 E AndroidRuntime: FATAL EXCEPTION: main
04-18 17:08:40.940  6011  6011 E AndroidRuntime: Process: com.cictech.xlauncher, PID: 6011
04-18 17:08:40.940  6011  6011 E AndroidRuntime: android.content.res.Resources$NotFoundException: Resource ID #0x0
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:237)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.content.res.Resources.loadXmlResourceParser(Resources.java:2400)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.content.res.Resources.getLayout(Resources.java:1252)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.LayoutInflater.inflate(LayoutInflater.java:530)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.appcompat.app.AlertController$AlertParams.createListView(AlertController.java:989)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.appcompat.app.AlertController$AlertParams.apply(AlertController.java:965)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.appcompat.app.AlertDialog$Builder.create(AlertDialog.java:984)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at com.cictech.xlauncher.MainActivity$7.onClick(MainActivity.java:188)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.View.performClick(View.java:7448)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.View.performClickInternal(View.java:7425)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.View.onKeyUp(View.java:15060)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.KeyEvent.dispatch(KeyEvent.java:2892)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.View.dispatchKeyEvent(View.java:14247)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1954)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:476)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1861)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.app.Activity.dispatchKeyEvent(Activity.java:4085)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:126)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:86)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:144)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:604)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:60)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3413)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:390)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:5977)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5845)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5340)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5397)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5363)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5515)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5371)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5572)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5344)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5397)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5363)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5371)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5344)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5397)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5363)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5548)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5706)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3179)
04-18 17:08:40.940  6011  6011 E AndroidRuntime:        at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2721)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2712)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3156)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:143)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.os.MessageQueue.nativePollOnce(Native Method)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.os.MessageQueue.next(MessageQueue.java:335)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:183)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7695)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
04-18 17:08:40.943  6011  6011 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
04-18 17:08:40.947  2569  2813 D AudioFlinger: mixer(0xabae2080) throttle end: throttle time(45)
04-18 17:08:40.964  2774  3534 W ActivityTaskManager:   Force finishing activity com.cictech.xlauncher/.MainActivity

附:Android中用兩層AlertDialog來(lái)進(jìn)行彈出選擇框信息選擇

在Android經(jīng)常會(huì)用到AlertDialog,把內(nèi)容使用AlertDialog結(jié)合列表的形式顯示出來(lái),然后我們點(diǎn)擊得到點(diǎn)擊的信息。 這里可以使用兩層的AlertDialog來(lái)實(shí)現(xiàn)

1:我們現(xiàn)在xml文件中定義一個(gè)要顯示內(nèi)容列表數(shù)組

2:在Activity中使用 String[] items = getResources().getStringArray(R.array.item);

3:增添點(diǎn)擊事件,使用Alertdialog.builder  千萬(wàn)不能忘了最后進(jìn)行show()哦  

直接看截圖的效果:

源代碼:      

package com.jiangqq.alertdialog;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
/**
 * 使用AlertDialog進(jìn)行選擇功能
 * 
 * @author jiangqq
 * 
 */
public class AlertDialogActivity extends Activity {
	private Button btn;
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
 
		btn = (Button) findViewById(R.id.btn);
		btn.setOnClickListener(new OnClickListener() {
 
			public void onClick(View v) {
				final String[] items = getResources().getStringArray(
						R.array.item);
				new AlertDialog.Builder(AlertDialogActivity.this)
						.setTitle("請(qǐng)點(diǎn)擊選擇")
						.setItems(items, new DialogInterface.OnClickListener() {
 
							public void onClick(DialogInterface dialog,
									int which) {
								new AlertDialog.Builder(
										AlertDialogActivity.this)
										.setTitle("你選擇了:" + items[which])
										.setMessage("點(diǎn)擊選擇操作")
										.setPositiveButton(
												"確定",
												new DialogInterface.OnClickListener() {
 
													public void onClick(
															DialogInterface dialog,
															int which) {
														// 這里是你點(diǎn)擊確定之后可以進(jìn)行的操作
													}
												})
										.setNegativeButton(
												"取消",
												new DialogInterface.OnClickListener() {
 
													public void onClick(
															DialogInterface dialog,
															int which) {
														// 這里點(diǎn)擊取消之后可以進(jìn)行的操作
													}
												}).show();
							}
						}).show();
			}
		});
	}
}

 string.xml文件內(nèi)容:    

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="hello">Hello World, AlertDialogActivity!</string>
    <string name="app_name">Hello World, AlertDialogActivity</string>
    <string name="btn_name">點(diǎn)擊彈出AlertDialog</string>
 
    <string-array name="item">
        <item>第一個(gè)選擇</item>
        <item>第二個(gè)選擇</item>
        <item>第三個(gè)選擇</item>
        <item>第四個(gè)選擇</item>
    </string-array>
 
</resources>

總結(jié) 

到此這篇關(guān)于Android使用AlertDialog實(shí)現(xiàn)彈出菜單的文章就介紹到這了,更多相關(guān)Android AlertDialog實(shí)現(xiàn)彈出菜單內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android RadarView雷達(dá)圖(蜘蛛網(wǎng)圖)的實(shí)現(xiàn)代碼

    Android RadarView雷達(dá)圖(蜘蛛網(wǎng)圖)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Android RadarView雷達(dá)圖(蜘蛛網(wǎng)圖)的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • android之RatingBar控件用法詳解

    android之RatingBar控件用法詳解

    下面小編就為大家?guī)?lái)一篇android之RatingBar控件用法詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • Android實(shí)現(xiàn)九宮格手勢(shì)解鎖

    Android實(shí)現(xiàn)九宮格手勢(shì)解鎖

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)九宮格手勢(shì)解鎖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android 仿淘寶商品屬性標(biāo)簽頁(yè)

    Android 仿淘寶商品屬性標(biāo)簽頁(yè)

    這篇文章主要介紹了Android 仿淘寶商品屬性標(biāo)簽頁(yè)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • Android studio 4.1打包失敗和插件錯(cuò)誤提示的解決

    Android studio 4.1打包失敗和插件錯(cuò)誤提示的解決

    這篇文章主要介紹了Android studio 4.1打包失敗和插件錯(cuò)誤提示的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • android通用xml解析方法

    android通用xml解析方法

    之前做的網(wǎng)絡(luò)相關(guān)的應(yīng)用,里面涉及到了xml的解析,由于急于完成任務(wù)也沒(méi)有設(shè)計(jì)就直接敲代碼。這幾天給一個(gè)朋友做項(xiàng)目的時(shí)候也涉及到了xml的解析,而且解析的內(nèi)容比較多,我查看了以前的項(xiàng)目中的相關(guān)代碼,頓時(shí)覺(jué)得很多代碼都是可以?xún)?yōu)化的。在此寫(xiě)兩個(gè)通用的xml解析方法,當(dāng)然這里所講的通用只是在一定程度上并且需要遵守一些規(guī)范。
    2013-03-03
  • Android實(shí)現(xiàn)測(cè)試環(huán)境噪音分貝

    Android實(shí)現(xiàn)測(cè)試環(huán)境噪音分貝

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)測(cè)試環(huán)境噪音分貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android開(kāi)發(fā)實(shí)現(xiàn)橫向列表GridView橫向滾動(dòng)的方法【附源碼下載】

    Android開(kāi)發(fā)實(shí)現(xiàn)橫向列表GridView橫向滾動(dòng)的方法【附源碼下載】

    這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)橫向列表GridView橫向滾動(dòng)的方法,結(jié)合實(shí)例形式分析了Android橫向列表GridView實(shí)現(xiàn)橫向滾動(dòng)的相關(guān)布局與功能實(shí)現(xiàn)技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2018-01-01
  • 一個(gè)簡(jiǎn)單的Android圓弧刷新動(dòng)畫(huà)

    一個(gè)簡(jiǎn)單的Android圓弧刷新動(dòng)畫(huà)

    這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)單的Android圓弧刷新動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Android實(shí)現(xiàn)快遞單號(hào)查詢(xún)快遞狀態(tài)信息

    Android實(shí)現(xiàn)快遞單號(hào)查詢(xún)快遞狀態(tài)信息

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)快遞單號(hào)查詢(xún)快遞狀態(tài)信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評(píng)論

延川县| 上高县| 凌源市| 博野县| 南木林县| 亚东县| 梓潼县| 连江县| 五原县| 新泰市| 正安县| 榆中县| 抚松县| 高碑店市| 卫辉市| 江北区| 桑植县| 开阳县| 开江县| 陆良县| 日喀则市| 锦屏县| 平南县| 诏安县| 长丰县| 南汇区| 沁水县| 稷山县| 白银市| 东源县| 无为县| 墨江| 甘肃省| 大余县| 北票市| 定结县| 当阳市| 金秀| 曲松县| 富裕县| 内江市|