을 클릭하여 홈 위젯에서 2 개의 다른 활동 내가이 활동이 :안드로이드 열기 내 간단한 예제 응용 프로그램에서 다른 버튼
- MainActivity.java
- NewAppWidgetConfigureActivity.java
을 또한 내 애플 리케이션에서 나는 클래스가있다 NewAppWidget.java 을 확장 한 사람 AppWidgetProvider 0 내가 화면 집에 위젯을 추가 할 때, 내가 먼저 활동 NewAppWidgetConfigureActivity.java를 열려면
: 1,
은 무엇 내가 달성하고자하는 것은 이것이다. 지금까지는 괜찮습니다, 잘 작동합니다.
위젯을 화면에 추가하면 내 위젯에는 2 개의 버튼과 하나의 TextView가 있습니다. 는 내가 원하는 것은 이것이다 : 내가 첫 번째 버튼을 클릭하면
- , 난 내가 두 번째 버튼을 클릭하면
- MainActivity.java를 열려면, 내가 NewAppWidgetConfigureActivity.java를 열고 자.
그러나 작동하지 않습니다. 버튼을 클릭하면 아무 일도 일어나지 않습니다. 다른 질문에서 해결책을 구현하려고하지만 작동하지 않습니다.
여기에 코드입니다 :
매니페스트 파일 코드 :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.petar.mywidgetwitbuttons">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".NewAppWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/new_app_widget_info" />
</receiver>
<activity android:name=".NewAppWidgetConfigureActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
</application>
이 코드 곳의 라인을 포함하여 내가 내 위젯에 필요한 모든 정보를 추가 new_ap_widget_info.xml, 대한 코드입니다 나는 위젯을 추가 할 때 자동으로 NewAppWidgetConfigureActivity.java 활동을 엽니 다.
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.example.petar.mywidgetwitbuttons.NewAppWidgetConfigureActivity"
android:initialKeyguardLayout="@layout/new_app_widget"
android:initialLayout="@layout/new_app_widget"
android:minHeight="110dp"
android:minWidth="180dp"
android:previewImage="@drawable/example_appwidget_preview"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="86400000"
android:widgetCategory="home_screen" />
이
은 의 AppWidgetProvider 내가 제공 정보에서 코드 줄을 제거 할 때 또한package com.example.petar.mywidgetwitbuttons;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
/**
* Implementation of App Widget functionality.
* App Widget Configuration implemented in {@link NewAppWidgetConfigureActivity NewAppWidgetConfigureActivity}
*/
public class NewAppWidget extends AppWidgetProvider {
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
CharSequence widgetText = NewAppWidgetConfigureActivity.loadTitlePref(context, appWidgetId);
// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
views.setTextViewText(R.id.appwidget_text, widgetText);
Log.d("widget", "onUpdatePrvo: Widget testiramo");
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds) {
updateAppWidget(context, appWidgetManager, appWidgetId);
Intent intent = new Intent(context, MainActivity.class);
Intent intent2 = new Intent(context, NewAppWidgetConfigureActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
PendingIntent pendingIntent2 = PendingIntent.getActivity(context, 0, intent2, 0);
// Get the layout for the App Widget and attach an on-click listener
// to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
views.setOnClickPendingIntent(R.id.buttonCLICK, pendingIntent);
views.setOnClickPendingIntent(R.id.buttonCLICK2, pendingIntent2);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
// When the user deletes the widget, delete the preference associated with it.
for (int appWidgetId : appWidgetIds) {
NewAppWidgetConfigureActivity.deleteTitlePref(context, appWidgetId);
}
}
@Override
public void onEnabled(Context context) {
// Enter relevant functionality for when the first widget is created
}
@Override
public void onDisabled(Context context) {
// Enter relevant functionality for when the last widget is disabled
}
}
, 다음, 내가 MainActivity.java를 열 수를 확장 NewAppWidget.java 클래스에 대한 코드 첫 번째 버튼 클릭시을 클릭해도 여전히 두 번째 버튼을 클릭하여 NewAppWidgetConfigureActivity.java을 열 수 없습니다. 안드로이드 : = "com.example.petar.mywidgetwitbuttons.NewAppWidgetConfigureActivity"여기
및 구성은 안드로이드없이 전체 업체 정보 코드 :이 쉬운 단계가 당신을 도울 수있는 구성 = ""
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.example.petar.mywidgetwitbuttons.NewAppWidgetConfigureActivity"
android:initialKeyguardLayout="@layout/new_app_widget"
android:initialLayout="@layout/new_app_widget"
android:minHeight="110dp"
android:minWidth="180dp"
android:previewImage="@drawable/example_appwidget_preview"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="86400000"
android:widgetCategory="home_screen" />
내가보기에, 내가 사용하는 모든 것은 허용됩니다. 내 집 위젯 UI에서 사용하는 것은 모두 2 개의 버튼과 상대 레이아웃입니다. 나는 다음과 같은 differnet 인 텐트를 사용한다 : Intent intent = new Intent (context, MainActivity.class); 의도 intent2 = 새로운 의도 (context, NewAppWidgetConfigureActivity.class); onUpdate() 메소드에서. 맞습니까? 내가 공급자 정보 android : configure = ""에서 제거하면, 첫 번째 버튼을 클릭하여 MainActivity를 실제로 열 수 있지만 두 번째 버튼을 클릭하여 두 번째 활동을 열 수 없습니다. – beginner
위에서 말한 다른 의도 액션을 설정해 보았습니까? 의도 a = 새 의도 ("MainActivity- 이것은 활동 1의 의도 동작입니다."); 의도 b = 새로운 의도 ("ConfigureActivity - 이것은 activity2의 의도 동작입니다"); – albeee
이 2 줄의 코드를 추가하려고해도 여전히 작동하지 않습니다. intent.setAction ("MainActivity"); intent2.setAction ("NewAppWidgetConfigureActivity"); – beginner