安卓Android Context類實(shí)例詳解
1.例如下面的代碼片段,Toast類的第一個(gè)參數(shù)接受一個(gè)Context對(duì)象:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("This is a dialog with some simple text...");
builder.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Toast.makeText(getBaseContext(), "OK clicked!",
Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Toast.makeText(getBaseContext(), "Cancel clicked!",
Toast.LENGTH_SHORT).show();
}
});
builder.setMultiChoiceItems(items, itemsChecked,
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
Toast.makeText(
getBaseContext(),
items[which]
+ (isChecked ? " checked!"
: " unchecked!"),
Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
return null;
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("This is a dialog with some simple text...");
builder.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Toast.makeText(getBaseContext(), "OK clicked!",
Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Toast.makeText(getBaseContext(), "Cancel clicked!",
Toast.LENGTH_SHORT).show();
}
});
builder.setMultiChoiceItems(items, itemsChecked,
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
Toast.makeText(
getBaseContext(),
items[which]
+ (isChecked ? " checked!"
: " unchecked!"),
Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
return null;
}
然而,Toast類并沒有直接用在Activity中,它被用在了AlertDialog類中。所以,這里需要通過getBaseContext()方法獲取一個(gè)Context類的實(shí)例。
2.在Activity中動(dòng)態(tài)地創(chuàng)建一個(gè)視圖的時(shí)候也會(huì)遇見Context。
例如,如果想通過硬編碼動(dòng)態(tài)地創(chuàng)建一個(gè)TextView:
TextView tv = new TextView(this); TextView tv = new TextView(this);
TextView的構(gòu)造器接受一個(gè)Context對(duì)象,因?yàn)锳ctivity類是Context類的子類,所以可以用this關(guān)鍵字來代替這個(gè)Conext對(duì)象。
提示:
使用this動(dòng)態(tài)地創(chuàng)建視圖,例如TextView、Button,存在一個(gè)潛在的風(fēng)險(xiǎn)——內(nèi)存泄漏。所以,盡可能地使用getApplicationContext()方法替代this。
- Android 中Context的使用方法詳解
- Android編程實(shí)現(xiàn)全局獲取Context及使用Intent傳遞對(duì)象的方法詳解
- Android全局獲取Context實(shí)例詳解
- Android編程實(shí)現(xiàn)為L(zhǎng)istView創(chuàng)建上下文菜單(ContextMenu)的方法
- Android context源碼詳解及深入分析
- Android面試筆記之常問的Context
- 談?wù)凙ndroid里的Context的使用實(shí)例
- 避免 Android中Context引起的內(nèi)存泄露
- 詳解Android中的Context抽象類
- 深入解析Android App開發(fā)中Context的用法
- Android編程獲取全局Context的方法
- Android編程中context及全局變量實(shí)例詳解
- Android中ContextMenu用法實(shí)例
- android基礎(chǔ)教程之context使用詳解
- Android獲取其他包的Context實(shí)例代碼
- android中Context深入詳解
相關(guān)文章
Android開發(fā)使用PopupMenu創(chuàng)建彈出式菜單完整實(shí)例
這篇文章主要介紹了Android開發(fā)使用PopupMenu創(chuàng)建彈出式菜單,結(jié)合完整實(shí)例形式分析了Android基于PopupMenu對(duì)象創(chuàng)建的彈出式菜單相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-03-03
Android實(shí)現(xiàn)獲取短信驗(yàn)證碼并自動(dòng)填寫功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)獲取短信驗(yàn)證碼并自動(dòng)填寫功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Android RollPagerView實(shí)現(xiàn)輪播圖
這篇文章主要介紹了Android RollPagerView實(shí)現(xiàn)輪播圖的相關(guān)資料,這里提供實(shí)例來實(shí)現(xiàn)輪播圖的簡(jiǎn)單實(shí)例,希望能幫助到大家,需要的朋友可以參考下2017-08-08
Android實(shí)現(xiàn)注冊(cè)登錄界面的實(shí)例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)注冊(cè)登錄界面的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
android 完全退出應(yīng)用程序?qū)崿F(xiàn)代碼
這篇文章主要介紹了在android中完全退出應(yīng)用的實(shí)現(xiàn)代碼,多種實(shí)現(xiàn)方法,大家可以根據(jù)需求選擇2013-06-06
Android布局耗時(shí)監(jiān)測(cè)的三種實(shí)現(xiàn)方式
在Android應(yīng)用開發(fā)中,性能優(yōu)化是一個(gè)至關(guān)重要的方面,為了更好地監(jiān)測(cè)布局渲染的耗時(shí),我們需要一種可靠的實(shí)現(xiàn)方案,本文將介紹三種針對(duì)Android布局耗時(shí)監(jiān)測(cè)的實(shí)現(xiàn)方案,幫助開發(fā)者及時(shí)發(fā)現(xiàn)并解決布局性能問題,需要的朋友可以參考下2024-03-03
Android實(shí)現(xiàn)圖片一邊的三角形邊框效果
這篇文章主要介紹了Android實(shí)現(xiàn)圖片一邊的三角形邊框效果,本文圖文并茂通過實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下2019-12-12

