Fehler im Code?

  • Antworten:128
  • OffenNicht stickyBentwortet
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.207

11.12.2013 22:02:20 via App

Da haste recht ist mir dach dem Lesen deines Posts auch eingefallen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 6.662

11.12.2013 22:53:05 via App

Tim B.

1package com.timbremer.ggnauenvertretungsplan;
2
3import org.apache.http.util.EncodingUtils;
4
5import android.os.Bundle;
6import android.view.View;
7import android.webkit.WebView;
8import android.widget.Button;
9import android.widget.EditText;
10import android.app.Activity;
11
12public class MainActivity extends Activity {
13
14 private EditText etusername;
15 private EditText etpassword;
16 private Button btlogin;
17 private String password;
18 private String username;
19
20
21
22 @Override
23 public void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);
25 setContentView(R.layout.activity_main);
26
27 //button
28
29 btlogin.setOnClickListener(new View.OnClickListener() {
30
31 @Override
32 public void onClick(View v) {
33 username = etusername.getText().toString();
34 password = etpassword.getText().toString();
35
36
37 //SharedPreferences speichern
38 getPreferences(MODE_PRIVATE).edit().putString("username",username).apply();
39
40 getPreferences(MODE_PRIVATE).edit().putString("password",password).apply();
41
42
43 //SharedPrefs auslesen
44
45 String password = getSharedPreferences("EditText", MODE_PRIVATE).getString("password", "0");
46 String username = getSharedPreferences("EditText", MODE_PRIVATE).getString("username", "0");
47
48 //WebView starten
49
50 WebView wv = new WebView(null);
51 setContentView(wv);
52
53 String url = "http://ggnauen.de/index.php";
54 String data = "username" + username + "&password" + password;
55
56 wv.postUrl(url, EncodingUtils.getBytes(data, "base64"));
57
58
59
60 }
61
62
63 });
64
65
66
67 }
68
69
70
71
72}

Der code hat so nie eine Chance zu über leben.
Hast du eine Layout Datei die activity_main heißt?
Gibts dort 2 EditText felder und ein Button? haben die eine ID?

Gruß Ludy

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

  • Forum-Beiträge: 2.545

11.12.2013 23:11:33 via Website


25 setContentView(R.layout.activity_main);
26
27 //button
28
29 btlogin.setOnClickListener(new View.OnClickListener() {

Ist nicht völlig offensichtlich, wo hier wohl die Nullpointer-Exception sein könnte?
  • Forum-Beiträge: 2.545

12.12.2013 00:42:40 via Website

Wäre jetzt vermutlich lehrreicher gewesen, wenn du das den Tim hättest herausfinden lassen ;-)
  • Forum-Beiträge: 101

12.12.2013 22:58:26 via App

Danke für eure Hilfe und die vielen Antworten! Ja es gibt natürlich zwei Edittexts und einen button. Sooo blöd bin ich nun auch nicht ;)

LG Optimus Me mit Root

Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 6.662

12.12.2013 23:03:55 via App

Sorry aber manchmal sind die einfachsten Dinge die schwersten.

Trotzdem fehlen entscheidene Dinge in deinem Code die wir dir schon gesagt/geschrieben haben wenn du das erst mal umsetzt wärst du schon weiter.

Gruß Ludy

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

  • Forum-Beiträge: 101

12.12.2013 23:08:32 via App

Wie gesagt, ich bin noch nicht weit in Sachen Programmierung. Ich meinte ja, im Code wird viel fehlen und am Ende ist die Reihenfolge falsch, ich habe nur alles aufgeschrieben. So ist mir klar, dass die App nicht funktionieren kann.

LG Optimus Me mit Root

Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 6.662

12.12.2013 23:15:37 via App

okay wenn du Hilfe brauchst sag Bescheid, kann zwar nicht alles weil hab mir das programmieren selber beigebracht aber vieles kenn ich oder weiß wo ich es finden kann.

Gruß Ludy

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

  • Forum-Beiträge: 101

13.12.2013 16:34:10 via Website

Bitte entschuldigt, hier aber noch eine letzte blöde Frage (das Buch ist noch nicht da aber ich kann nicht warten):
Wie weise ich den Button zu?
EDIT: Hat sich erledigt, habs selbst hinbekommen ;)
Gruß
tbremer19

— geändert am 13.12.2013 16:35:28

LG Optimus Me mit Root

  • Forum-Beiträge: 101

15.12.2013 20:35:50 via Website

Kann mir bitte nochmal jemand helfen? Ich habe eben etwas geändert, aber dummerweise vergessen, was... :(
Alles, was fett und unterstrichen ist, wird von eclipse unterstrichelt.
Hier der Code der MainActivity.java:
1package com.timbremer.ggnauenvertretungsplan;
2
3import org.apache.http.util.EncodingUtils;
4
5import android.R;
6import android.R.layout;
7import android.annotation.SuppressLint;
8import android.app.Activity;
9import android.app.AlertDialog;
10import android.content.DialogInterface;
11import android.content.Intent;
12import android.os.Bundle;
13import android.view.Menu;
14import android.view.MenuInflater;
15import android.view.View;
16import android.view.View.OnClickListener;
17import android.webkit.CookieManager;
18import android.webkit.WebSettings.PluginState;
19import android.webkit.WebView;
20import android.webkit.WebViewClient;
21import android.widget.Button;
22import android.widget.EditText;
23
24
25public class MainActivity extends Activity {
26
27 private EditText etusername;
28 private EditText etpassword;
29 private Button btlogin;
30 private Button btfeedback;
31
32 @Override
33 public void onCreate(Bundle savedInstanceState) {
34 super.onCreate(savedInstanceState);
35 setContentView(R.layout.activity_main);
36
37 Button btlogin = (Button) findViewById(R.id.btlogin)
38
39 EditText etusername = (EditText) findViewById(R.id.etusername);
40
41 findViewById(R.id.btfeedback).setOnClickListener(new OnClickListener() {
42 @Override
43 public void onClick(View v) {
44 Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
45 String[] recipients = new String[]{"tbremer19@gmail.com", "",};
46 emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
47 emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Feedback zur Vertretungsplan App");
48 emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Fehler, Lob, Kritik oder Funktionswünsche:");
49 emailIntent.setType("text/plain");
50 startActivity(Intent.createChooser(emailIntent, "Sende Mail mit..."));
51 finish();
52 }
53 });
54
55
56
57 new AlertDialog.Builder(MainActivity.this)
58
59 .setTitle("BETA")
60
61 .setMessage("Die App befindet sich zurzeit noch in einer Beta-Testphase. Wenn du Fehler in meiner App findest, klick einfach auf den Feedback-Button.")
62
63 .setNeutralButton("Fenster Schließen",
64
65 new DialogInterface.OnClickListener() {
66
67 public void onClick(DialogInterface dialog,
68
69 int which) {
70
71 }
72
73 }).show();
74
75
76
77 //button
78
79 findViewById(R.id.btlogin).setOnClickListener( new View.OnClickListener() {
80
81
82 @SuppressLint("SetJavaScriptEnabled") @Override
83 public void onClick(View v) {
84
85 EditText etusername = (EditText) findViewById (R.id.etusername);
86 etusername.setText(etusername.getText().toString());
87 EditText etpassword = (EditText) findViewById (R.id.etpassword);
88 etpassword.setText(etpassword.getText().toString());
89
90 WebView wv = new WebView(MainActivity.this);
91 setContentView(wv);
92 wv.getSettings().setBuiltInZoomControls(true);
93 CookieManager.getInstance().setAcceptCookie(true);
94 wv.getSettings().setJavaScriptEnabled(true);
95 wv.getSettings().setLoadWithOverviewMode(true);
96 wv.getSettings().setUseWideViewPort(true);
97 wv.loadUrl("javascript: {" +
98 "document.getElementById('username').value = '"+etusername+"';" +
99 "document.getElementById('password').value = '"+etpassword+"';" +
100 "var frms = document.getElementsByName('login');" +
101 "frms[0].submit(); };");
102 wv.setWebViewClient(new WebViewClient() {
103 @Override
104 public boolean shouldOverrideUrlLoading(WebView view, String url) {
105 return false;
106 }
107 });
108
109
110 String url = "http://www.ggnauen.de/index.php";
111 String data = "username" + etusername + "&password" + etpassword;
112
113 wv.postUrl(url, EncodingUtils.getBytes(data, "base64"));
114
115
116
117 }
118
119
120 });
121
122
123
124 }
125
126
127
128
129
130
131
132
133
134
135
136
137 }

Und hier die activity_main.xml:
1<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:paddingBottom="@dimen/activity_vertical_margin"
6 android:paddingLeft="@dimen/activity_horizontal_margin"
7 android:paddingRight="@dimen/activity_horizontal_margin"
8 android:paddingTop="@dimen/activity_vertical_margin"
9 tools:context=".MainActivity"
10 >
11
12 <Button
13 android:id="@+id/btlogin"
14 android:layout_width="wrap_content"
15 android:layout_height="wrap_content"
16 android:layout_alignParentLeft="true"
17 android:layout_alignParentRight="true"
18 android:layout_below="@+id/etpassword"
19 android:layout_marginTop="19dp"
20 android:text="Anmelden" />
21
22 <TextView
23 android:id="@+id/textView1"
24 android:layout_width="wrap_content"
25 android:layout_height="wrap_content"
26 android:layout_alignLeft="@+id/etusername"
27 android:layout_alignParentTop="true"
28 android:text="Login"
29 android:textAppearance="?android:attr/textAppearanceLarge" />
30
31 <EditText
32 android:id="@+id/etusername"
33 android:layout_width="wrap_content"
34 android:layout_height="wrap_content"
35 android:layout_alignLeft="@+id/etpassword"
36 android:layout_alignParentRight="true"
37 android:layout_below="@+id/textView1"
38 android:layout_marginTop="16dp"
39 android:ems="10"
40 android:hint="Benutzername" >
41
42 <requestFocus />
43 </EditText>
44
45 <EditText
46 android:id="@+id/etpassword"
47 android:layout_width="wrap_content"
48 android:layout_height="wrap_content"
49 android:layout_alignLeft="@+id/btlogin"
50 android:layout_alignParentRight="true"
51 android:layout_below="@+id/etusername"
52 android:ems="10"
53 android:hint="Passwort" />
54
55 <Button
56 android:id="@+id/btfeedback"
57 android:layout_width="wrap_content"
58 android:layout_height="wrap_content"
59 android:layout_alignParentBottom="true"
60 android:layout_alignParentLeft="true"
61 android:layout_alignRight="@+id/btlogin"
62 android:text="Feedback" />
63
64
65
66</RelativeLayout>
Ich bekomme immer einen Fehler: "...cannot be resolved or is not a field"
Danke, tbremer19

— geändert am 15.12.2013 20:37:31

LG Optimus Me mit Root

  • Forum-Beiträge: 2.150

15.12.2013 21:28:49 via App

OT:
Kann man sich schon als beta tester anmelden? ^^

— geändert am 15.12.2013 21:28:59

  • Forum-Beiträge: 101

15.12.2013 21:30:22 via Website

Sgt G.
OT:
Kann man sich schon als beta tester anmelden? ^^
Jap

LG Optimus Me mit Root

  • Forum-Beiträge: 101

15.12.2013 21:31:04 via Website

impjor
Lösche bitte android.R und android.R.layout aus deinen imports.
Ggf. auch einmal das Project cleanen (in eclipse Project > Clean).

LG
Wie dämlich... da hätte ich auch selbst drauf kommen können. Die imports waren bei mir nicht komplett eingeblendet. Danke!

LG Optimus Me mit Root

  • Forum-Beiträge: 2.150

15.12.2013 21:33:42 via App

Tim B.
Sgt G.
OT:
Kann man sich schon als beta tester anmelden? ^^
Jap
Wo? ^^
  • Forum-Beiträge: 101

16.12.2013 16:41:01 via Website

Ach Mensch Leute... meine App startet schon wieder nicht. Hab nur den package name geändert... Hier das Logcat:

EDIT: hab den Fehler schon wieder gefunden... in der AndroidManifest.xml habe ich nur das obere feld geändert

— geändert am 16.12.2013 16:49:15

LG Optimus Me mit Root

  • Forum-Beiträge: 101

16.12.2013 20:04:02 via Website

Jetzt wird schon wieder das R unsterstrichen... Hab schon so viele gegoogled aber nichts gefunden. Die R.java ist bei mir im gen Ordner nicht vorhanden.

1package com.timbremer.vertretungsplanggnauen;
2
3import org.apache.http.util.EncodingUtils;
4
5import android.annotation.SuppressLint;
6import android.app.Activity;
7import android.app.AlertDialog;
8import android.content.DialogInterface;
9import android.content.Intent;
10import android.os.Bundle;
11import android.support.v4.widget.DrawerLayout;
12import android.view.Menu;
13import android.view.MenuInflater;
14import android.view.View;
15import android.view.View.OnClickListener;
16import android.webkit.CookieManager;
17import android.webkit.WebSettings.PluginState;
18import android.webkit.WebView;
19import android.webkit.WebViewClient;
20import android.widget.Button;
21import android.widget.EditText;
22
23
24public class MainActivity extends Activity {
25
26 private EditText etusername;
27 private EditText etpassword;
28 private Button btlogin;
29 private Button btfeedback;
30
31
32 @Override
33 public void onCreate(Bundle savedInstanceState) {
34 super.onCreate(savedInstanceState);
35 setContentView(R.layout.activity_main);
36
37 Button btlogin = (Button) findViewById(R.id.btlogin);
38
39 EditText etusername = (EditText) findViewById(R.id.etusername);
40
41 findViewById(R.id.btfeedback).setOnClickListener(new OnClickListener() {
42 @Override
43 public void onClick(View v) {
44 Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
45 String[] recipients = new String[]{"tbremer19@gmail.com", "",};
46 emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
47 emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Feedback zur Vertretungsplan App");
48 emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Fehler, Lob, Klritik oder Funktionswünsche:");
49 emailIntent.setType("text/plain");
50 startActivity(Intent.createChooser(emailIntent, "Sende Mail mit..."));
51 finish();
52 }
53 });
54
55
56
57 new AlertDialog.Builder(MainActivity.this)
58
59 .setTitle("BETA")
60
61 .setMessage("Die App befindet sich zurzeit noch in einer Beta-Testphase. Wenn du Fehler in meiner App findest, klick einfach auf den Feedback-Button.")
62
63 .setNeutralButton("Fenster Schließen",
64
65 new DialogInterface.OnClickListener() {
66
67 public void onClick(DialogInterface dialog,
68
69 int which) {
70
71 }
72
73 }).show();
74
75
76
77 //button
78
79 findViewById(R.id.btlogin).setOnClickListener( new View.OnClickListener() {
80
81
82 @SuppressLint("SetJavaScriptEnabled") @Override
83 public void onClick(View v) {
84
85 EditText etusername = (EditText) findViewById (R.id.etusername);
86 etusername.setText(etusername.getText().toString());
87 EditText etpassword = (EditText) findViewById (R.id.etpassword);
88 etpassword.setText(etpassword.getText().toString());
89
90 WebView wv = new WebView(MainActivity.this);
91 setContentView(wv);
92 wv.getSettings().setBuiltInZoomControls(true);
93 CookieManager.getInstance().setAcceptCookie(true);
94 wv.getSettings().setJavaScriptEnabled(true);
95 wv.getSettings().setLoadWithOverviewMode(true);
96 wv.getSettings().setUseWideViewPort(true);
97 wv.loadUrl("javascript: {" +
98 "document.getElementById('username').value = '"+etusername +"';" +
99 "document.getElementById('password').value = '"+etpassword+"';" +
100 "var frms = document.getElementsByName('loginForm');" +
101 "frms[0].submit(); };");
102 wv.setWebViewClient(new WebViewClient() {
103 @Override
104 public boolean shouldOverrideUrlLoading(WebView view, String url) {
105 return false;
106 }
107 });
108
109
110 String url = "http://www.ggnauen.de/index.php";
111 String data = "username" +etusername+ "&password" + etpassword;
112
113 wv.postUrl(url, EncodingUtils.getBytes(data, "base64"));
114
115
116
117 }
118
119
120 });
121
122
123
124 }
125
126
127
128
129
130
131
132
133
134
135
136
137
138 }

LG Optimus Me mit Root