안 드 로 이 드 는 손 으로 launcher 개발 을 가르쳐 줍 니 다(4)--widget 표시
우 리 는 이러한 효 과 를 얻 으 려 고 합 니 다."add widget"을 누 르 면 widget 목록 을 팝 업 한 다음 widget 을 선택 한 후 화면 에 표시 합 니 다.다음 과 같 습 니 다. 제4 과:widget 1 을 표시 합 니 다.widget 정 보 를 얻 으 면 widget 을 얻 는 것 은 매우 간단 합 니 다.시스템 에 요청 만 보 내 면 시스템 이 widget 목록 을 열 고 하 나 를 선택 하면 됩 니 다.코드 는 다음 과 같 습 니 다:
?
2.widget 의 view 를 layot 에 추가
widget 을 선택 하면 onActivity Result 를 통 해 activity 에 알 립 니 다.widget 의 정 보 는 Intent data 에 포함 되 어 있 습 니 다.자세 한 내용 은 코드 설명 을 보십시오.
void addWidget() {
int appWidgetId = mAppWidgetHost.allocateAppWidgetId();
Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
// start the pick activity
startActivityForResult(pickIntent, [b]REQUEST_PICK_APPWIDGET[/b]);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// The pattern used here is that a user PICKs a specific application,
// which, depending on the target, might need to CREATE the actual
// target.
// For example, the user would PICK_SHORTCUT for "Music playlist", and
// we
// launch over to the Music app to actually CREATE_SHORTCUT.
if (resultCode == RESULT_OK) {
switch (requestCode) {
case REQUEST_PICK_APPWIDGET:
addAppWidget(data);
break;
case REQUEST_CREATE_APPWIDGET:
completeAddAppWidget(data);
break;
}
}
}
void addAppWidget(Intent data) {
// TODO: catch bad widget exception when sent
int appWidgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
-1);
AppWidgetProviderInfo appWidget = mAppWidgetManager
.getAppWidgetInfo(appWidgetId);
//widget , widget
if (appWidget.configure != null) {
// Launch over to configure widget, if needed
Intent intent = new Intent(
AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
intent.setComponent(appWidget.configure);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
startActivityForResultSafely(intent, REQUEST_CREATE_APPWIDGET);
} else {
// widget , widget layout
// Otherwise just add it
onActivityResult(REQUEST_CREATE_APPWIDGET, Activity.RESULT_OK, data);
}
}
void startActivityForResultSafely(Intent intent, int requestCode) {
try {
startActivityForResult(intent, requestCode);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, "activity_not_found", Toast.LENGTH_SHORT)
.show();
} catch (SecurityException e) {
Toast.makeText(this, "activity_not_found", Toast.LENGTH_SHORT)
.show();
}
}
/**
* widget layout
* @param data widget
*/
private void completeAddAppWidget(Intent data) {
Bundle extras = data.getExtras();
int appWidgetId = extras
.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
Log.d(TAG, "dumping extras content=" + extras.toString());
AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager
.getAppWidgetInfo(appWidgetId);
// Perform actual inflation because we're live
synchronized (mLock) {
// widget view
mHostView = mAppWidgetHost.createView(this, appWidgetId,
appWidgetInfo);
mHostView.setAppWidget(appWidgetId, appWidgetInfo);
// view layout
LayoutParams lp = new LinearLayout.LayoutParams(
appWidgetInfo.minWidth, appWidgetInfo.minHeight);
mainLayout.addView(mHostView, lp);
mHostView.requestLayout();
}
}
안 드 로 이 드 손 으로 launcher 개발 가르쳐 줄 게(1)(AndroidStudio 버 전)
안 드 로 이 드 는 손 으로 launcher(2)를 개발 하 는 것 을 가르쳐 줍 니 다.설 치 된 프로그램 을 보 여 줍 니 다.
안 드 로 이 드 는 손 으로 launcher(3)를 개발 하 는 것 을 가르쳐 줍 니 다.설 치 된 프로그램 을 시작 합 니 다.
안 드 로 이 드 는 손 으로 launcher 개발 을 가르쳐 줍 니 다(4)--widget 표시
안 드 로 이 드 는 손 으로 launcher(5)를 개발 하 는 것 을 가르쳐 줍 니 다.벽지 설정
다음으로 이동:http://www.bangchui.org/read.php?tid=12239
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.