新聞中心
Android手機(jī)操作系統(tǒng)是一款由谷歌推出的開源操作系統(tǒng)。在智能手機(jī)領(lǐng)域中,這一操作系統(tǒng)占據(jù)著非常重要的地位。在這里我就先來了解一下Android dialog的實(shí)現(xiàn)方法。希望可以給大家?guī)硪恍椭?t#

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、尼金平網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、網(wǎng)上說的很多,Android dialog實(shí)現(xiàn)的方法有兩個(gè)
一個(gè)是通過AlertDialog.Builder 初始化dialog 然后再showDialog
另一個(gè)是通過將androidManifest.xml中的activity的屬性設(shè)為android:theme="@android:style/Theme.Dialog,偽裝為dialog
2、showDialog的線程問題
Android dialog的顯示不會(huì)阻塞ui線程.....
例子
Java代碼
- protected void onListItemClick(ListView l, View v,
int position, long id) {- Intent intent = new Intent();
- Bundle bundle = new Bundle();
- switch (editMode) {
- case SELECT:
- bundle.putString("listName", list.get
(position).getName());- intent.setClass(this, AudioPlayer.class);
- intent.putExtras(bundle);
- startActivity(intent);
- break;
- case RENAME:
- oldName = list.get(position).getName();
- intent.setClass(MusicList.this, DialogActivity.class);
- startActivityForResult(intent, Preferences.RENAME);
- break;
- case DELETE:
- oldName = list.get(position).getName();
- showDialog(CONFIRM_DIALOG);
- delete(oldName,flag);
- break;
- }
- editMode = EditMode.SELECT;
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- case CONFIRM_DIALOG:
- return new AlertDialog.Builder(MusicList.this).setIcon(
- android.R.drawable.ic_dialog_alert).setTitle("確認(rèn)刪除?")
- .setPositiveButton(R.string.confirm,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int whichButton) {
- mListTool.deleteList(oldName);
- flag = true;
- }
- }).setNegativeButton(R.string.cancel,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int whichButton) {
- flag = false;
- }
- }).create();
- }
- return null;
- } }
- protected void onListItemClick(ListView l, View v,
int position, long id) {- Intent intent = new Intent();
- Bundle bundle = new Bundle();
- switch (editMode) {
- case SELECT:
- bundle.putString("listName", list.get(position).getName());
- intent.setClass(this, AudioPlayer.class);
- intent.putExtras(bundle);
- startActivity(intent);
- break;
- case RENAME:
- oldName = list.get(position).getName();
- intent.setClass(MusicList.this, DialogActivity.class);
- startActivityForResult(intent, Preferences.RENAME);
- break;
- case DELETE:
- oldName = list.get(position).getName();
- showDialog(CONFIRM_DIALOG);
- delete(oldName,flag);
- break;
- }
- editMode = EditMode.SELECT;
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- case CONFIRM_DIALOG:
- return new AlertDialog.Builder(MusicList.this).setIcon(
- android.R.drawable.ic_dialog_alert).setTitle("確認(rèn)刪除?")
- .setPositiveButton(R.string.confirm,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int whichButton) {
- mListTool.deleteList(oldName);
- flag = true;
- }
- }).setNegativeButton(R.string.cancel,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int whichButton) {
- flag = false;
- }
- }).create();
- }
- return null;
- } }
Android dialog的對(duì)話框還在初始化得過程中,delete方法就調(diào)用了,說明dialog是另開一個(gè)線程的,同時(shí)提供回調(diào)方法
3、取得dialog中Edittext的內(nèi)容問題
由于Android dialog本身沒有提供取得Edittext內(nèi)容的回調(diào)函數(shù),所以需要自己寫.....
簡單的方法是使用activity偽裝dialog,有布局更自由,消息傳遞更方便地優(yōu)點(diǎn)
本文標(biāo)題:Androiddialog應(yīng)用經(jīng)驗(yàn)總結(jié)
文章路徑:http://fisionsoft.com.cn/article/dphchpj.html


咨詢
建站咨詢
