- Forum-Beiträge: 5
27.08.2013, 21:12:53 via Website
27.08.2013 21:12:53 via Website
ich bin neu hier und habe direkt mal eine Frage . Ich habe angefangen ein Buch zu lesen für Einsteiger in die Android Programmierung. So weit fühle ich mich auch gut nur das Problem ist, dass ich irgendwie den Inhalt einer Webseite nicht aufrufen kann.
Unzwar habe ich eine Internetseite(die gehört u.a. mir): Kann wegen "spam" die Seite nicht schreiben
Nun möchte ich eine App machen und den Inhalt einer Nachricht in einer TextView (vorerst) haben.
Folgender Code:
2
3import java.io.BufferedInputStream;
4import java.io.BufferedReader;
5import java.io.IOException;
6import java.io.InputStream;
7import java.io.InputStreamReader;
8import java.net.HttpURLConnection;
9import java.net.MalformedURLException;
10import java.net.URL;
11
12import android.app.Activity;
13import android.os.Bundle;
14import android.view.Menu;
15import android.widget.TextView;
16
17public class News extends Activity {
18
19
20
21 @Override
22 protected void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.news);
25
26 GetContentOfWebsite();
27
28 }
29
30 @Override
31 public boolean onCreateOptionsMenu(Menu menu) {
32 // Inflate the menu; this adds items to the action bar if it is present.
33 getMenuInflater().inflate(R.menu.news, menu);
34 return true;
35 }
36
37 private void GetContentOfWebsite()
38 {
39 TextView firstNews = (TextView)findViewById(R.id.firstNews);
40 HttpURLConnection urlConnection = null;
41
42 try
43 {
44 URL url = new URL(Die Webseite, da ich neu bin darf ich kein Link schreiben);
45 urlConnection = (HttpURLConnection)url.openConnection();
46 InputStream in = new BufferedInputStream(urlConnection.getInputStream());
47 ReadStream(in,firstNews);
48 }
49
50 catch(MalformedURLException e)
51 {
52 e.printStackTrace();
53 }
54
55 catch(IOException e)
56 {
57 e.printStackTrace();
58 }
59
60 finally
61 {
62 if(null!=urlConnection)
63 {
64 urlConnection.disconnect();
65 }
66 }
67
68 }
69
70 private void ReadStream(InputStream in, TextView textView) throws IOException
71 {
72 BufferedReader rd = new BufferedReader(new InputStreamReader(in), 4096);
73 String line;
74 StringBuilder sb = new StringBuilder();
75 while ((line = rd.readLine()) != null)
76 {
77 sb.append(line);
78 }
79 rd.close();
80
81 textView.setText(sb.toString());
82 }
83
84}
Logcat spuckt mir folgendes aus:
208-27 21:10:28.719: E/AndroidRuntime(24792): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.trgol.trgol/com.trgol.trgol.News}: android.os.NetworkOnMainThreadException
308-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
408-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
508-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.ActivityThread.access$700(ActivityThread.java:140)
608-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
708-27 21:10:28.719: E/AndroidRuntime(24792): at android.os.Handler.dispatchMessage(Handler.java:99)
808-27 21:10:28.719: E/AndroidRuntime(24792): at android.os.Looper.loop(Looper.java:137)
908-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.ActivityThread.main(ActivityThread.java:4921)
1008-27 21:10:28.719: E/AndroidRuntime(24792): at java.lang.reflect.Method.invokeNative(Native Method)
1108-27 21:10:28.719: E/AndroidRuntime(24792): at java.lang.reflect.Method.invoke(Method.java:511)
1208-27 21:10:28.719: E/AndroidRuntime(24792): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
1308-27 21:10:28.719: E/AndroidRuntime(24792): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
1408-27 21:10:28.719: E/AndroidRuntime(24792): at dalvik.system.NativeStart.main(Native Method)
1508-27 21:10:28.719: E/AndroidRuntime(24792): Caused by: android.os.NetworkOnMainThreadException
1608-27 21:10:28.719: E/AndroidRuntime(24792): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
1708-27 21:10:28.719: E/AndroidRuntime(24792): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
1808-27 21:10:28.719: E/AndroidRuntime(24792): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
1908-27 21:10:28.719: E/AndroidRuntime(24792): at java.net.InetAddress.getAllByName(InetAddress.java:214)
2008-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
2108-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
2208-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
2308-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
2408-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
2508-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
2608-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
2708-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
2808-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
2908-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
3008-27 21:10:28.719: E/AndroidRuntime(24792): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
3108-27 21:10:28.719: E/AndroidRuntime(24792): at com.trgol.trgol.News.GetContentOfWebsite(News.java:46)
3208-27 21:10:28.719: E/AndroidRuntime(24792): at com.trgol.trgol.News.onCreate(News.java:26)
3308-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.Activity.performCreate(Activity.java:5206)
3408-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
3508-27 21:10:28.719: E/AndroidRuntime(24792): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
3608-27 21:10:28.719: E/AndroidRuntime(24792): ... 11 more
Könnt ihr mir irgendwie weiterhelfen.
Ich bedanke mich im Voraus .
— geändert am 27.08.2013, 21:14:51
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.