2016-06-26 3 views
0

J'ai un problème ... J'ai commencé à apprendre le développement Android via Xamarin. J'essaye de construire mon premier widget, appelé HelloWorldWidget.Mon appwidget-provider ne fonctionne pas dans le dossier xml mais fonctionne dans le dossier de configuration

Mon problème est, mon xml appwidget fournisseur n'est pas reconnu dans le dossier xml et je reçois cette erreur:

No resource found that matches the given name (at 'resource' with value '@xml/HelloWorldWidgetProvider'). HelloWidget.Droid C:\Users\paulo\Source\Repos\Pocs\HelloWidget\HelloWidget\HelloWidget.Droid\obj\Debug\android\manifest\AndroidManifest.xml 17 

Quand je copie le fichier de ressources de mise en page et changer mon chemin de ressource @ layout /, tout fonctionne bien.

Voici mes fichiers:

ressources/xml/HelloWorldWidgetProvider.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="40dp" 
    android:minHeight="40dp" 
    android:updatePeriodMillis="86400000" 
    android:initialLayout="@layout/HelloWorldWidget" 
    android:resizeMode="horizontal|vertical" 
    android:widgetCategory="home_screen"> 
</appwidget-provider> 

ressources/mise en page/HelloWorldWidget.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView 
     android:id="@+id/HelloWorldWidgetText" 
     android:text="Hello World!" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

HelloWordWidget.cs

[BroadcastReceiver(Label = "@string/HelloWorldWidgetLabel")] 
[IntentFilter(new string[] { "android.appwidget.action.APPWIDGET_UPDATE" })] 
[MetaData("android.appwidget.provider", Resource = "@xml/HelloWorldWidgetProvider")] 
public class HelloWorldWidget : BroadcastReceiver 
{ 
    public override void OnReceive(Context context, Intent intent) 
    { 
     Toast.MakeText(context, "Received intent!", ToastLength.Short).Show(); 
    } 
} 

Des indices?

Répondre

1

C'est toujours un peu difficile;) Vous devez renvoyer les minuscules

[MetaData("android.appwidget.provider", Resource = "@xml/helloworldwidgetprovider")] 
+0

OMFG! Je vous remercie!!!! :RÉ –