저번 글에서는 홈스크린 위젯의 기초에 대해 알아보았으니, 이번 글에서는 홈스크린 위젯에서 상호작용을 할 수 있도록 버튼을 추가해보겠습니다.
액티비티
- SimpleActivity.java (SimpleActivity)
레이아웃
- simpleactivity.xml (SimpleActivity)
- simple_widget_layout.xml (위젯 레이아웃)
XML
- simplewidget.xml (위젯 프로바이더)
- 8 (Android 2.2)
01.
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
02.
<
LinearLayout
03.
xmlns:android
=
"http://schemas.android.com/apk/res/android"
04.
android:background
=
"@drawable/widget_background_4_1"
05.
android:gravity
=
"center"
06.
android:layout_height
=
"wrap_content"
07.
android:layout_width
=
"fill_parent"
08.
>
09.
<
TextView
10.
android:layout_width
=
"wrap_content"
11.
android:layout_height
=
"wrap_content"
12.
android:textColor
=
"#000000"
13.
android:textSize
=
"20dp"
14.
android:id
=
"@+id/simple_widget_layout_text"
15.
android:text
=
"Hello, Widget!"
/>
16.
17.
<
Button
18.
android:layout_width
=
"wrap_content"
19.
android:layout_height
=
"wrap_content"
20.
android:id
=
"@+id/simple_widget_layout_activity"
21.
android:layout_marginLeft
=
"10dp"
22.
android:text
=
"Activity"
/>
23.
24.
</
LinearLayout
>
01.
public
class
MySimpleWidget
extends
AppWidgetProvider {
02.
03.
@Override
04.
public
void
onUpdate(Context context, AppWidgetManager appWidgetManager,
int
[] appWidgetIds){
05.
final
int
N = appWidgetIds.length;
06.
07.
for
(
int
i=
0
; i<N; i++) {
08.
int
appWidgetId = appWidgetIds[i];
09.
RemoteViews views = buildViews(context);
10.
appWidgetManager.updateAppWidget(appWidgetId, views);
11.
}
12.
}
13.
14.
private
PendingIntent buildActivityIntent(Context context){
15.
Intent intent =
new
Intent(Intent.ACTION_VIEW)
16.
.setData(Uri.parse(
"http://google.com"
));
17.
PendingIntent pi = PendingIntent.getActivity(context,
0
, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
18.
return
pi;
19.
}
20.
21.
private
RemoteViews buildViews(Context context){
22.
RemoteViews views =
new
RemoteViews(context.getPackageName(), R.layout.simple_widget_layout);
23.
views.setOnClickPendingIntent(R.id.simple_widget_layout_activity, buildActivityIntent(context));
24.
return
views;
25.
}
26.
}
'android' 카테고리의 다른 글
안드로이드 개발 추천 사이트 (0) | 2013.07.16 |
---|---|
안드로이드 연락처 목록 가져오기/삭제하기 방법 (0) | 2013.07.16 |
webview에서 googlemap 현재위치 불러오기 (0) | 2013.07.03 |
android 퍼미션 종류별 정리 (0) | 2013.07.02 |
안드로이드 웹뷰(webview)안에서 alert 처리 (1) | 2013.07.01 |