Fußballtabelle automatisch befüllen...

A

andymcnab

Neues Mitglied
Threadstarter
Servus zusammen, gibt es eine Möglichkeit eine Tabelle (mit mehreren TextViews) mit Daten einer Homepage zu befüllen?
Also z.B. Premier League Table, Form Guide & Season Archives die Daten der Premier League Tabelle in die Tabelle eintragen.

Grund: Ich will die Tabelle natürlich nicht manuell pflegen, sondern die Daten automatisch einlesen.

Besten Dank
 
swa00

swa00

Moderator
Teammitglied
Willkommen im Forum,

mit Libraries a la JSoup ist dies möglich

jhy/jsoup
 
A

andymcnab

Neues Mitglied
Threadstarter
Hi,
super danke Dir. Das verstehe ich soweit.

Ich habe nun versucht eine TabbedActivity mit zwei Tabs, in denen ich zwei verschiedene Fragmente anzeigen möchte zu erstellen.
Ich bekomme es momentan noch nicht hin den Text aus der HTML Seite in meine TextViews zu schreiben.

Mein Code sieht so aus:
@override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
new Website().execute();
}

// Title AsyncTask
private class Website extends AsyncTask<Void, Void, Void> {
String title;
final StringBuilder builder = new StringBuilder();
final StringBuilder tabellenerster = new StringBuilder();

@override
protected void onPreExecute() {
super.onPreExecute();
}
@override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
Document doc = Jsoup.connect("Tabelle - B-Klasse Nord - Donau - FuPa").get();
// Get the html document title
title = doc.title();

Elements erster = doc.select("#ip_content_wrapper > div.content > div.content_standard > table.liga_tabelle.content_table_std.liga_tabelle_tabelle > tbody > tr.tabelle_farbe_meister > td.tab_team_name");
//Platz 1
for (Element link : erster) {
tabellenerster.append(link.text());
}
}
catch (IOException e) {
builder.append("Error : ").append(e.getMessage()).append("\n");
}
return null;
}

@override
protected void onPostExecute(Void result) {

// Set title into TextView
TextView txttitle = (TextView) getView().findViewById(R.id.titletxt);
txttitle.setText(title);

TextView erster = (TextView) getView().findViewById(R.id.erster);
erster.setText(tabellenerster.toString());

}
}

Vielleicht kann mir nochmal jemand helfen oder einen Tipp geben.

Danke!
 
swa00

swa00

Moderator
Teammitglied
Schau dir mal deinen Errorlog an , da steht mit an Sicherheit grenzender Wahrscheinlichkeit drin , dass du nicht auf den UI Thread zugreifen kannst.

P.S Bitte in Zukunft direkt den Errorlog mitschicken , sonst können wir nicht mehr helfen
 
Zuletzt bearbeitet:
A

andymcnab

Neues Mitglied
Threadstarter
Hi,

sry dafür. Ich bekomme keinen Errror, also meine App läuft auf dem AVD, aber der Text in der TextView wird nicht ersetzt.
 
J

jogimuc

Erfahrenes Mitglied
Hallo eine frage zwischen durch wird in der onPostExecute Methode den auch dein Titel ausgegeben?

Das mit dem final für tabellenerster bezweifle 9ch etwas wurde das auch mal weglassen.
Oder als Parameter an die Methode onpostexecute übergeben.

So wie saw00 sagte das du im thread it die zu zugreifen stimmt nicht kann ich nicnt erkennen.
Die onPostExecute läuft im UI . Nur doInBackground läuft im thread .
 
A

andymcnab

Neues Mitglied
Threadstarter
Ich habe jetzt mal versucht nur den Title der Website auszugeben. Das sieht dann folgendermaßen aus und sollte meiner Meinung nach funktionieren:

@override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}

new Website().execute();
}

// Title AsyncTask
private class Website extends AsyncTask<Void, Void, Void> {
String title;

@override
protected void onPreExecute() {
super.onPreExecute();
}

@override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
Document doc = Jsoup.connect("Tabelle - B-Klasse Nord - Donau - FuPa").get();
// Get the html document title
title = doc.title();
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}

@override
protected void onPostExecute(Void result) {

// Set title into TextView
TextView txttitle = (TextView) getView().findViewById(R.id.titletxt);
txttitle.setText(title);
}

@override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
 
J

jogimuc

Erfahrenes Mitglied
Ja und wird herausgeführt oder nicht?
 
A

andymcnab

Neues Mitglied
Threadstarter
Ja ohne Fehler, allerdings wird der Text in der TextView nicht durch den title ersetzt. Kann es etwas damit zu tun haben, dass es sich um ein Fragment handelt?
-- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
Es scheint hier doch Probleme zu geben:


2019-04-09 12:07:22.763 19385-19420/com.google.android.videos W/PlayCommon: [1481] PlayEventLogger.getAuthToken: No account for auth token provided
2019-04-09 12:07:22.760 19192-19192/? W/kworker/0:0: type=1400 audit(0.0:9193): avc: denied { module_request } for kmod="net-pf-16-proto-4-type-2-17" scontext=u:r:kernel:s0 tcontext=u:r:kernel:s0 tclass=system permissive=0
2019-04-09 12:07:22.920 19192-19192/? I/chatty: uid=0(root) kworker/0:0 identical 4 lines
2019-04-09 12:07:22.920 19192-19192/? W/kworker/0:0: type=1400 audit(0.0:9198): avc: denied { module_request } for kmod="net-pf-16-proto-4-type-2-17" scontext=u:r:kernel:s0 tcontext=u:r:kernel:s0 tclass=system permissive=0
2019-04-09 12:07:42.957 1769-1769/? E/netmgr: Failed to open QEMU pipe 'qemud:network': Invalid argument
2019-04-09 12:07:42.957 1769-1769/? E/netmgr: WifiForwarder unable to open QEMU pipe: Invalid argument
2019-04-09 12:07:57.807 19510-19512/? W/libprocessgroup: Failed to find HighPerformancetask profile: Success
2019-04-09 12:07:57.809 19510-19512/? W/libprocessgroup: Failed to find HighIoPrioritytask profile: Success
2019-04-09 12:07:57.809 19510-19512/? W/libprocessgroup: Failed to find TimerSlackNormaltask profile: Success
2019-04-09 12:07:58.568 1861-5336/system_process I/ActivityManager: Force stopping com.example.utzwingen_1 appid=10123 user=0: from pid 19515
2019-04-09 12:07:58.569 1861-5336/system_process I/ActivityManager: Killing 19468:com.example.utzwingen_1/u0a123 (adj 0): stop com.example.utzwingen_1
2019-04-09 12:07:58.570 1861-5336/system_process W/ActivityTaskManager: Force removing ActivityRecord{2c3f637 u0 com.example.utzwingen_1/.Kader t176 f}: app died, no saved state
2019-04-09 12:07:58.613 1861-1887/system_process W/libprocessgroup: kill(-19468, 9) failed: No such process
2019-04-09 12:07:58.669 1861-1887/system_process W/libprocessgroup: kill(-19468, 9) failed: No such process
2019-04-09 12:07:58.675 1861-1960/system_process W/InputDispatcher: channel '72fb086 com.example.utzwingen_1/com.example.utzwingen_1.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
2019-04-09 12:07:58.675 1861-1960/system_process E/InputDispatcher: channel '72fb086 com.example.utzwingen_1/com.example.utzwingen_1.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
2019-04-09 12:07:58.683 1597-1597/? I/Zygote: Process 19468 exited due to signal 9 (Killed)
2019-04-09 12:07:58.694 1861-5336/system_process W/ActivityTaskManager: Force removing ActivityRecord{761ef67 u0 com.example.utzwingen_1/.MainActivity t176 f}: app died, no saved state
2019-04-09 12:07:58.695 1861-5336/system_process W/InputDispatcher: Attempted to unregister already unregistered input channel '72fb086 com.example.utzwingen_1/com.example.utzwingen_1.MainActivity (server)'
2019-04-09 12:07:58.715 1861-1887/system_process W/libprocessgroup: kill(-19468, 9) failed: No such process
2019-04-09 12:07:58.716 1861-1887/system_process I/libprocessgroup: Successfully killed process cgroup uid 10123 pid 19468 in 110ms
2019-04-09 12:07:58.733 1861-3050/system_process W/WindowManager: Failed looking up window callers=com.android.server.wm.WindowManagerService.windowForClientLocked:5155 com.android.server.wm.WindowState$DeathRecipient.binderDied:2380 android.os.BinderProxy.sendDeathNotice:620
2019-04-09 12:07:58.733 1861-3050/system_process I/WindowManager: WIN DEATH: null
2019-04-09 12:07:58.802 1861-1885/system_process W/Looper: Slow dispatch took 233ms android.ui h=com.android.server.am.ActivityManagerService$UiHandler c=null m=53
2019-04-09 12:07:58.816 1861-1885/system_process W/Looper: Slow delivery took 246ms android.ui h=com.android.server.am.ActivityManagerService$UiHandler c=null m=32
2019-04-09 12:07:58.886 1861-1885/system_process W/Looper: Drained
2019-04-09 12:07:58.960 1861-1890/system_process W/ActivityManager: setHasOverlayUi called on unknown pid: 19468
2019-04-09 12:07:58.968 2017-2214/com.android.systemui W/ndroid.systemu: JNI critical lock held for 41.047ms on Thread[16,tid=2214,Runnable,Thread*=0xdab3a000,peer=0x13780590,"pool-2-thread-1"]
2019-04-09 12:07:58.900 1637-1637/? W//system/bin/adbd: type=1400 audit(0.0:9212): avc: denied { read } for comm=73796E6320737663203336 dev="nsfs" ino=4026531840 scontext=u:r:adbd:s0 tcontext=u:object_r:nsfs:s0 tclass=file permissive=0
2019-04-09 12:07:59.074 18340-18423/com.google.android.googlequicksearchbox:search I/RunnerModule: Event Bus thread priority is now -2
2019-04-09 12:07:59.075 18340-18340/com.google.android.googlequicksearchbox:search I/SearchServiceCore: Event Bus thread is enabled
2019-04-09 12:07:59.094 18340-18340/com.google.android.googlequicksearchbox:search W/ThreadPoolDumper: Queue length for executor EventBus is now 11. Perhaps some tasks are too long, or the pool is too small.
2019-04-09 12:07:59.201 18340-18423/com.google.android.googlequicksearchbox:search W/SessionLifecycleManager: Handover failed. Creating new session controller.
2019-04-09 12:07:59.234 1861-3048/system_process I/ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.utzwingen_1/.MainActivity} from uid 2000
2019-04-09 12:07:59.297 1597-1597/? I/zygote: Ignoring open file descriptor 29
2019-04-09 12:07:59.340 1861-1886/system_process W/ActivityManager: Slow operation: 66ms so far, now at startProcess: done updating battery stats
2019-04-09 12:07:59.353 1861-1886/system_process W/ActivityManager: Slow operation: 78ms so far, now at startProcess: building log message
2019-04-09 12:07:59.357 1861-1886/system_process I/ActivityManager: Start proc 19527:com.example.utzwingen_1/u0a123 for activity com.example.utzwingen_1/.MainActivity
2019-04-09 12:07:59.357 1861-1886/system_process W/ActivityManager: Slow operation: 83ms so far, now at startProcess: starting to update pids map
2019-04-09 12:07:59.415 1861-1886/system_process W/ActivityManager: Slow operation: 141ms so far, now at startProcess: done updating pids map
2019-04-09 12:07:59.461 19527-19527/? I/ple.utzwingen_: Not late-enabling -Xcheck:jni (already on)
2019-04-09 12:07:59.494 19527-19527/? E/ple.utzwingen_: Unknown bits set in runtime_flags: 0x8000
2019-04-09 12:07:59.495 19527-19527/? W/ple.utzwingen_: Unexpected CPU variant for X86 using defaults: x86
2019-04-09 12:07:59.646 19527-19527/com.example.utzwingen_1 I/ple.utzwingen_: The ClassLoaderContext is a special shared library.
2019-04-09 12:07:59.654 19527-19527/com.example.utzwingen_1 I/ple.utzwingen_: The ClassLoaderContext is a special shared library.
2019-04-09 12:08:00.036 1625-1852/? E/SurfaceFlinger: ro.sf.lcd_density must be defined as a build property
2019-04-09 12:08:00.046 18340-18423/com.google.android.googlequicksearchbox:search E/MicroDetectionWorker: Stale runnable..ignoring
2019-04-09 12:08:00.055 19527-19548/com.example.utzwingen_1 W/libc: Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied)
2019-04-09 12:08:00.055 19527-19548/com.example.utzwingen_1 E/vndksupport: Could not load /vendor/lib/egl/libGLES_emulation.so from sphal namespace: dlopen failed: library "/vendor/lib/egl/libGLES_emulation.so" not found.
2019-04-09 12:08:00.055 19527-19548/com.example.utzwingen_1 E/libEGL: load_driver(/vendor/lib/egl/libGLES_emulation.so): unknown
2019-04-09 12:08:00.091 18340-19549/com.google.android.googlequicksearchbox:search W/LocationOracle: No location history returned by ContextManager
2019-04-09 12:08:00.050 19527-19527/com.example.utzwingen_1 W/RenderThread: type=1400 audit(0.0:9213): avc: denied { write } for name="property_service" dev="tmpfs" ino=7432 scontext=u:r:untrusted_app_27:s0:c123,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0 app=com.example.utzwingen_1
2019-04-09 12:08:00.201 2404-19329/com.google.android.gms.persistent W/ctxmgr: [AclManager]No 3 for (accnt=account#-517948760#, com.google.android.gms(10089):UserVelocityProducer, vrsn=16088022, 0, 3pPkg = null , 3pMdlId = null , pid = 2404). Was: 3 for 1, account#-517948760# [CONTEXT service_id=47 ]
2019-04-09 12:08:00.325 1861-5336/system_process W/AppOps: Noting op not finished: uid 10089 pkg com.google.android.gms code 79 time=1554804480318 duration=-1
2019-04-09 12:08:00.443 2404-2404/com.google.android.gms.persistent W/.gms.persisten: JNI critical lock held for 22.191ms on Thread[1,tid=2404,Runnable,Thread*=0xf2334e00,peer=0x7288cec8,"main"]
2019-04-09 12:08:00.496 19527-19527/com.example.utzwingen_1 W/ple.utzwingen_: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection)
2019-04-09 12:08:00.497 19527-19527/com.example.utzwingen_1 W/ple.utzwingen_: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection)
2019-04-09 12:08:00.620 1861-2879/system_process I/WifiService: acquireWifiLock uid=10089 lockMode=2
2019-04-09 12:08:00.731 19527-19547/com.example.utzwingen_1 W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
2019-04-09 12:08:00.804 1509-1509/? I/hwservicemanager: getTransport: Cannot find entry android.hardware.graphics.mapper@3.0::IMapper/default in either framework or device manifest.
2019-04-09 12:08:00.805 19527-19547/com.example.utzwingen_1 W/Gralloc3: mapper 3.x is not supported
2019-04-09 12:08:00.828 2404-19329/com.google.android.gms.persistent E/ctxmgr: [ProducerStatusImpl]updateStateForNewContextData: inactive, contextName=7 [CONTEXT service_id=47 ]
2019-04-09 12:08:00.954 2404-3592/com.google.android.gms.persistent I/PlaceInferenceEngine: [anon] Changed inference mode: 1
2019-04-09 12:08:01.041 1861-1883/system_process I/ActivityTaskManager: Displayed com.example.utzwingen_1/.MainActivity: +1s806ms
2019-04-09 12:08:01.056 1861-2135/system_process E/InputDispatcher: Window handle Window{5793da9 u0 Splash Screen com.example.utzwingen_1} has no registered input channel
2019-04-09 12:08:01.060 1861-3900/system_process E/InputDispatcher: Window handle Window{5793da9 u0 Splash Screen com.example.utzwingen_1} has no registered input channel
2019-04-09 12:08:01.149 18340-19456/com.google.android.googlequicksearchbox:search I/PBSessionCacheImpl: Deleted sessionId[565303858679] from persistence.
2019-04-09 12:08:01.171 2404-3592/com.google.android.gms.persistent I/Places: ?: PlacesBleScanner start() with priority 2
2019-04-09 12:08:01.171 2404-3592/com.google.android.gms.persistent I/PlaceInferenceEngine: [anon] Changed inference mode: 1
2019-04-09 12:08:01.214 18340-18423/com.google.android.googlequicksearchbox:search W/SearchServiceCore: Abort, client detached.
2019-04-09 12:08:01.543 1861-2879/system_process I/WifiService: releaseWifiLock uid=10089
2019-04-09 12:08:01.552 2404-3592/com.google.android.gms.persistent I/Places: Converted 1 out of 1 WiFi scans
2019-04-09 12:08:01.575 2404-19495/com.google.android.gms.persistent I/PlaceInferenceEngine: No beacon scan available - ignoring candidates.
2019-04-09 12:08:05.032 18340-19231/com.google.android.googlequicksearchbox:search I/EventLogSendingHelper: Sending log events.
2019-04-09 12:08:06.276 2404-3592/com.google.android.gms.persistent I/PlaceInferenceEngine: [anon] Changed inference mode: 1
2019-04-09 12:08:06.301 1861-3050/system_process W/AppOps: Noting op not finished: uid 10089 pkg com.google.android.gms code 79 time=1554804486300 duration=-1
2019-04-09 12:08:06.348 1861-3050/system_process W/AppOps: Noting op not finished: uid 10089 pkg com.google.android.gms code 79 time=1554804486347 duration=-1
2019-04-09 12:08:06.429 1861-3050/system_process W/AppOps: Noting op not finished: uid 10089 pkg com.google.android.gms code 79 time=1554804486429 duration=-1
2019-04-09 12:08:06.348 2404-3592/com.google.android.gms.persistent I/PlaceInferenceEngine: [anon] Changed inference mode: 1
2019-04-09 12:08:10.030 18340-19549/com.google.android.googlequicksearchbox:search I/EventLogSendingHelper: Sending log events.
2019-04-09 12:08:10.040 18340-18423/com.google.android.googlequicksearchbox:search I/WorkerManager: dispose()
2019-04-09 12:08:10.044 18340-18423/com.google.android.googlequicksearchbox:search W/ThreadPoolDumper: Queue length for executor EventBus is now 11. Perhaps some tasks are too long, or the pool is too small.
2019-04-09 12:08:10.047 1861-1883/system_process E/memtrack: Couldn't load memtrack module
2019-04-09 12:08:10.049 1861-1883/system_process W/android.os.Debug: failed to get memory consumption info: -1
2019-04-09 12:08:11.348 1603-3538/? W/audio_hw_generic: Not supplying enough data to HAL, expected position 35134154 , only wrote 35134133
2019-04-09 12:08:11.485 19527-19527/com.example.utzwingen_1 W/ple.utzwingen_: Accessing hidden field Landroid/widget/AbsListView;->mIsChildViewEnabled:Z (greylist, reflection)
2019-04-09 12:08:11.636 1613-1766/? I/chatty: uid=1000(system) HwBinder:1613_2 identical 1 line
2019-04-09 12:08:12.501 1861-3050/system_process I/ActivityTaskManager: START u0 {cmp=com.example.utzwingen_1/.Kader} from uid 10123
2019-04-09 12:08:11.878 19527-19547/com.example.utzwingen_1 I/chatty: uid=10123(com.example.utzwingen_1) RenderThread identical 5 lines
2019-04-09 12:08:12.567 19527-19527/com.example.utzwingen_1 W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@7655a13
2019-04-09 12:08:13.055 1613-1766/? I/chatty: uid=1000(system) HwBinder:1613_2 identical 1 line
2019-04-09 12:08:15.637 1603-1757/? W/audio_hw_generic: Not supplying enough data to HAL, expected position 35510660 , only wrote 35323179
2019-04-09 12:08:20.108 1861-1883/system_process E/memtrack: Couldn't load memtrack module
2019-04-09 12:08:20.108 1861-1883/system_process W/android.os.Debug: failed to get memory consumption info: -1
2019-04-09 12:08:23.472 1861-2879/system_process E/memtrack: Couldn't load memtrack module
2019-04-09 12:08:23.472 1861-2879/system_process W/android.os.Debug: failed to get memory consumption info: -1
 
J

jogimuc

Erfahrenes Mitglied
Dann füge dir doch mal ein Log für die variable text in der doInBackground ein. Oder benutze den Debugger um zu sehen welchen Wert deine variable annimmt.

Wenn du dich wirklich in einem fragment befindest brauchst du den Context der activity für das findviewbyid. Da du deine asynctask klasse aus der oncreate startest bist du wohl noch nicht im fragment .
 
A

andymcnab

Neues Mitglied
Threadstarter
Das Problem scheint "Couldn't load memtrack module" zu sein?

Kann das sein?
-- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
Kann ich Euch noch weitere Infos geben? Ich bin nicht der Oberprogrammierer und momentan wirklich verzweifelt...
 
Oben Unten