2013-10-31 2 views
2

나는 이미 Android에서 응용 프로그램을 만들었습니다. 이제 내 요구 사항은이 응용 프로그램을위한 위젯을 만들고 싶다는 것입니다. 이미 위젯 데모를 만들었습니다. 하지만 위젯 아이콘을 통해 응용 프로그램을 어떻게 시작 할 수 있는지 모르겠습니다. 제게 그것을 해주십시오. 도움이 될 것입니다.android에서 응용 프로그램 용 위젯 만들기

답변

2

Main 클래스 :

public class Main extends AppWidgetProvider { 

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 

    super.onUpdate(context, appWidgetManager, appWidgetIds); 
    for (int i =0 ; i< appWidgetIds.length ; i++) 
    { 
     int appWidgetId = appWidgetIds[i]; 

     Intent intent = new Intent(); 
     intent.setClass(context, Home.class); 

     PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); 

     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 
     views.setOnClickPendingIntent(R.id.Site, pending);; 

     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 
} 

}

의 AndroidManifest.xml

  <receiver android:name="Main">  
      <intent-filter> 
       <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
      </intent-filter> 

      <meta-data 
       android:name="android.appwidget.provider" 
       android:resource="@xml/widget" /> 
     </receiver> 

Widget.xml :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ImageButton 
    android:id="@+id/Site" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:contentDescription="@string/app_name" 
    android:src="@drawable/commentsms" /> 

및 고해상도의/XML/widget.xml이 코드를 추가해야

<?xml version="1.0" encoding="utf-8"?> 
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minHeight="72dp" 
    android:minWidth="144dp" 
    android:updatePeriodMillis="0" > 

    </appwidget-provider> 
+0

? 내 프로젝트에서? 그렇다면 Home.java 대신에 무엇을 호출할까요? 내 첫 번째 활동은 Splash.java입니다. 그래서 나는 home.java를 splash.java –

+1

으로 대체한다. 당신은 프로젝트에 Main 클래스를 추가해야한다. 홈은 당신이 보여주고 싶은 첫 번째 활동이다. 프로젝트에 splash.class가있다. –

+0

나는 이것을했다. 응용 프로그램을 설치할 수 있지만 장치에 표시 할 아이콘이나 위젯이 없습니다 ( –

관련 문제