1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Brauche Hilfe bei Widget

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von YannickB, 26.03.2011.

  1. YannickB, 26.03.2011 #1
    YannickB

    YannickB Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    26.01.2011
    Phone:
    HTC Desire
    Hallo Android Spezialisten!
    Ich bin dabei mein erstes Widget zu Programmieren, weiß aber nicht wie ich eine Textausgabe hinbekomme. Das Widget lässt sich auf den HomeScreen hinzufügen und stürtzt schonmal nicht ab. Es steht halt immer der Start Text "loading data..." drin. Wie bekomme ich jetzt über eine Funktion z.B. einen anderen Text angezeigt?

    Das ist meine RSSFeedReader.java
    Code:
    package de.yannickb.widget.rssfeedreader;
    
    import android.appwidget.AppWidgetManager;
    import android.appwidget.AppWidgetProvider;
    import android.content.Context;
    
    public class RSSFeedReader extends AppWidgetProvider {
        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
            //TextView.Val("Hallo :)")
    //nur als Beispiel
        }
    
    }
    Hab schon gegooglet nach Tutorials, doch leider sind alle auf English, da komm ich bei den fachlichen Fachbegriffen und so nicht ganz mit.
    Ich hoffe mir könnt mir weiterhelfen.
    Danke & Gruß
    Yannick
     
  2. swordi, 26.03.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ohne englisch wirds in der branche generell schwer.
     
  3. YannickB, 26.03.2011 #3
    YannickB

    YannickB Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    26.01.2011
    Phone:
    HTC Desire
    Ganz ohne English bin ich ja zum Glück nicht. Aber um beim lernen von 0 anzufangen ist es dann doch nicht leicht, da bevorzuge ich schonmal lieber deutsche Anleitungen. Dann kann ich mich mehr auf wesentliche konzentrieren.
     
  4. YannickB, 26.03.2011 #4
    YannickB

    YannickB Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    26.01.2011
    Phone:
    HTC Desire
    Ich habe mich jetzt mal an diesem Tutorial orientiert (Days to Xmas widget tutorial | Hello Android).
    Wenn ich den Code aus dem Tutorial kopiere funktioniert alles, wenn ich aber jetzt ein neues Projekt erstelle und den Code Kopiere, natürlich habe ich namen usw.. angepasst findet leider kein update statt. Es bleibt nur der Start Text (loading data...) stehen.

    Hier mal die Dateien, vielleicht fällt ja jemandem was auf:

    src/de.yannickb.widget.rssfeedreader/RSSFeedReader.java
    Code:
    package de.yannickb.widget.rssfeedreader;
    
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import android.appwidget.AppWidgetManager;
    import android.appwidget.AppWidgetProvider;
    import android.content.ComponentName;
    import android.content.Context;
    import android.widget.RemoteViews;
    
    public class RSSFeedReader extends AppWidgetProvider {
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
               Timer timer = new Timer();
               timer.scheduleAtFixedRate(new Update(context, appWidgetManager), 1, 1000);
          }
          private class Update extends TimerTask {
                 RemoteViews remoteViews;
                 AppWidgetManager appWidgetManager;
                 ComponentName thisWidget;
                 public Update(Context context, AppWidgetManager appWidgetManager) {
                 this.appWidgetManager = appWidgetManager;
                 remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
                 thisWidget = new ComponentName(context, RSSFeedReader.class);
                 }
                 @Override
                 public void run() {
                    Date date1 = new Date();
                     //Calendar calendar = new GregorianCalendar(2010, 11,25);
                     long days = date1.getTime();
                         remoteViews.setTextViewText(R.id.tv_rss,""+days);
                         appWidgetManager.updateAppWidget(thisWidget, remoteViews); 
                 }
          }
        }
    AndroidManifest.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="de.yannickb.widget.rssfeedreader"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
    
             <!-- Broadcast Receiver that will process AppWidget updates -->
            <receiver android:name=".RSSFeedReader" android:label="@string/app_name">
                   <intent-filter>
                      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                   </intent-filter>
                   <meta-data android:name="android.appwidget.provider" android:resource="@xml/hello_widget_provider" />
            </receiver>
        </application>
        <uses-sdk android:minSdkVersion="4" />
    </manifest> 
    res/layout/main.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/background">
    <TextView  
        android:id="@+id/tv_rss"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
       android:paddingTop="5dip" android:paddingLeft="20dip"/>
    </LinearLayout>
    
    res/values/strings.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello">loading data...</string>
        <string name="app_name">_RSS-Feed Reader</string>
    </resources>
    res/xml/hello_widget_provider.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
       android:minWidth="250dip"
       android:minHeight="50dip"
       android:updatePeriodMillis="10000"
       android:initialLayout="@layout/main"
    />
    Schonmal vielen dank für eure Hilfe!
    Gruß
    Yannick

    *EDIT*
    Ein Neustart meines HTCs war die Lösung! Muss man auch erstmal drauf kommen :)
     
    Zuletzt bearbeitet: 26.03.2011

Diese Seite empfehlen