Okay also jetzt ist meine App ziemlich langsam. Das passiert immer, wenn ich das 2. Layout aufrufe. Wodran liegt das?
Beiträge von evoh
-
-
Hmm okay danke
macht es einen Unterschied bzw. ist es besser oder schlechter, wenn ich das Layout in der gleichen .xml Datei mit einbau oder ob ich diese über ein Include .xml laufen lasse?
-
Also das funktioniert schonmal >.< da hätte ich auch drauf kommen können.
So jetzt habe ich nochwas und zwar will ich in mein Layout ein zweites Layout "includen" das klappt auch ganz gut nur will ich, das das 2. Layout erst Visible wird, wenn ein Button gedrückt wird. Macht man sowas mit ViewSwitcher oder ViewFlipper oder doch einfach mit layout2.setVisibitly oder so ähnlich?
-
Hey...
also ich versuche momentan auf einem Bild(ImageView) TextViews zuplazieren, nur bekomme ich das nicht so ganz hin. Also ich will nicht nur 1 Text sondern gleich 2 die ich dann mit meinem Code immer verändern kann. Hat da jemand eine Idee bzw. wie mache ich das in der XML?
Ich habe bis jetzt nur diesen Ansatz, der nicht gerade viel versprechend ist, da dort ja nur ein String auf dem View plaziert ist und auch nicht wirklich funktioniert.
Java<ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" android:text="@string/home" />
Danke schonmal für alle Hinweise
-
Hey... die Seite hatte ich auch schon gefunden aber trotzdem danke
Nur leider funktioniert das noch immer nicht auch auf diesem Weg nicht.
Aber anscheinend lässt er dort ja auch Cookies zu:
CookieManager.getInstance().setAcceptCookie(true);Das habe ich auch schon alles versucht nur ohne Erfolg. Aber bei ihm scheint ja auch das Problem nur grundsätzlich beim Login gewesen zu sein.
-
Okey, aber danke für deine Hilfe.
Also ich hab grad ziemlich viel versucht nur mit den Cookies klappt, dass auch nicht.
Kennt sich jemand damit aus, wie ich den Login speichere bzw. aufrecht erhalte? -
Ja genau also immoment bin ich danach dann wieder ausgeloggt. Ich würde es jetzt denk ich mal mit einem CookieManager versuchen.
Ja die Buttons sind jetzt da.
-
wenn ich jetzt nach dem Login auf der Seite etwas machen will muss ich Cookies verwenden oder?Ich würde ja gerne den Button benutzen nur hast du ihn glaube ich nicht aktiviert. Den musst du bei jeder antwort aktivieren glaube ich.(Bedankomat aktivieren.)
-
Okay
ich hatte es zuerst mit Login, mein Fehler war, dass ich es nicht so wie in HTML klein geschrieben habe.
Woher ich weiß das es gehen muss?
Weil es jetzt dank deiner Hilfe geht
Danke nochmalwenn ich jetzt nach dem Login auf der Seite etwas machen will muss ich Cookies verwenden oder?
-
Java
try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); nameValuePairs.add(new BasicNameValuePair("userid", "test")); nameValuePairs.add(new BasicNameValuePair("userpass", "test")); nameValuePairs.add(new BasicNameValuePair("submit", "submit")); // was muss hier ins 2. Feld? httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Hey...also so wie es jetzt ist funktioniert es auch nicht. Bei dem 3. Wertepaar handelt es sich um einen Button, der normalerweise gedrückt wird. Muss ich da irgendwas besonderes beachten?
Eigentlich sollte es möglich sein sich dort auf diese Art einzuloggen.
-
Stimmt eigentlich würde ich dann ja kein response bekommen.
Ups...hab den Falschen HTML-Code gepostet. Hier ist es Userid und userpass... also dadran kann es nicht liegen
HTML
Alles anzeigen<table> <tr> <th class="topLine">Benutzername:</th> <td class="tdunkel"><input type="text" name="userid" maxlength="16" size="20"/></td> </tr> <tr> <th class="topLine">Passwort:</th> <td class="thell"><input type="password" name="userpass" maxlength="16" size="20"/></td> </tr> <tr> <td class="topLine" style="text-align:center;" colspan="2"><input type="submit" name="submit" value="login"/></td> </tr> </table>
-
Guten Morgen
also mit loadDataWithBaseURL() funktioniert das Seite laden jetzt, nur sind die Felder, die eigentlich ausgefüllt sein sollten noch leer. Eigentlich sollte das doch jetzt so klappen oder nicht bzw. kann ich irgendwie testen, ob die Daten auch gesendet worden sind?
-
Meinst du ich soll die onPostExecute so anpassen?
Java@Override protected void onPostExecute(String result) { WebView webView = (WebView) findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.loadData(result, "text/html", "utf-8");
Wenn ja dann erscheint die Seite jetzt auch nur ohne Grafiken und die Felder sind auch leider nicht ausgefüllt.
Wie mach ich das jetzt?Danke nochmal das du mir hilfst
-
Hey... erstmal danke für deine Antwort
also ich habe hoffentlich jetzt deinen Rat befolgt, wenn ich das so richtig verstanden habe :).
Java
Alles anzeigenpublic class MainActivity extends Activity { final Context context = this; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } private class LoadWebPageASYNC extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { String result = ""; // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://example.org"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("userid", "test")); nameValuePairs.add(new BasicNameValuePair("userpass", "test")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); result = EntityUtils.toString(entity, "UTF-8"); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } return result; } @Override protected void onPostExecute(String result) { WebView webView = (WebView) findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("http://example.org"); } } public void dummyFunc(View view){ Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show(); } public void readWebpage(View view) { LoadWebPageASYNC task = new LoadWebPageASYNC(); task.execute(new String[] {"http://example.org" }); } }
Wie meinst du das mit dort übergibst du ihn an den Webview? -
Hey ,
da ich noch ein ziemlicher Android Anfänger bin stehe ich mal wieder vor einem Problem.
Und zwar bastel ich gerade an einem Login auf einer Website. Ich wollte gerne, dass die APP sich automatisch auf dieser Seite einloggt. Ich habe jetzt mal ein wenig im Internet gesucht und auch was gefunden, nur es funktioniert noch nicht richtig.
Zu der Seite: Ich muss mich via Post Methode dort einloggen.
HTML
Alles anzeigen<form>action="index.php" method="POST"> <table> <tr> <th class="topLine">Benutzername:</th> <td class="tbrom"><input type="text" name="id" maxlength="16" size="20"/></td> </tr> <tr> <th class="topLine">Passwort:</th> <td class="tbrom"><input type="password" name="password" maxlength="16" size="20"/></td> </tr> <tr> <td class="topLine" style="text-align:center;" colspan="2"><input type="submit" name="submit" value="login"/></td> </tr> </table> </form>
Ich habe es jetzt schonmal versucht nur bekomme ich immer: android.os.NetworkOnMainThreadException
So jetzt habe ich gelesen, dass ich um den Fehler zu umgehen ein Asynctask benutzen muss. Nur weiß ich jetzt nicht genau, wie ich die beiden Sachen kombiniereHier mal meine Post Methode:
Code
Alles anzeigenpublic void postData() { // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("https://example.com/"); try { // Add your data List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("userid", "idexample")); nameValuePairs.add(new BasicNameValuePair("userpass", "passexample")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } }
und hier mein Asynctask.
Java
Alles anzeigenfinal Context context = this; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } private class LoadWebPageASYNC extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { WebView webView = (WebView) findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(urls[0]); // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("www.example.com"); try { // Add your data List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("userid", "idexample")); nameValuePairs.add(new BasicNameValuePair("userpass", "passexample")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } return null; } @Override protected void onPostExecute(String result) { } } public void readWebpage(View view) { LoadWebPageASYNC task = new LoadWebPageASYNC(); task.execute(new String[] { "http://www.example.com" }); }
Gruß
Evoh