Hallo alle zusammen.
Erstmal tolles Forum. Bin Neu hier.
Meine frage. Ich wollte aus dem Internet vom WebSpace/FTP Server was auslesen und in der TextView einsetzen.
Z.B eine Text.txt Datei. Dazu brauche ich AsyncTask. Funktioniert auch alles Super.
Nun möchte ich das aber in eine Widget packen.
Heißt das Widget vorne auf dem Display den Text anzeigt den ich auslese und einsetze aus der Text.txt Datei aus dem Internet.
Hier mal mein Code:
Die MainActivity mit der AsyncTask:
Code
public class MainActivity extends Activity {
public TextView tv;
public String str;
public String inputLine;
public StringBuilder text;
public BufferedReader in;
public URL url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView1);
new DownloadTask().execute();
}
private class DownloadTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... arg0) {
try {
url = new URL("http://shellsapple.funpic.de/test.txt");
in = new BufferedReader(new InputStreamReader(url.openStream()));
inputLine = null;
text = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
str = in.readLine();
text.append(inputLine);
text.append('\n');
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
tv.setText(text);
tv.setTextColor(Color.BLACK);
}
}
}
Alles anzeigen
Klappt wie gesagt alles.
Dann meine AppWidgetProvider:
Code
public class AppWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(context, AppWidget.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
views.setTextViewText(R.id.textView1, "Test");
views.setTextColor(R.id.textView1, Color.BLACK);
views.setOnClickPendingIntent(R.id.button1, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
Alles anzeigen
Wie und was muss ich nun machen das es Funktioniert mit der AsyncTask in einer Widget (AppWidgetProvider)??
Habe schon vieles versucht aber klappt halt nicht das er den Text benutzt den ich auslese und einsetze in
Code
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
views.setTextViewText(R.id.textView1, text);
LG