Eclipse erkennt einen 100% richtigen Code nicht mehr!

  • Antworten:4
  • Bentwortet
Denis Agca
  • Forum-Beiträge: 3

17.10.2013, 11:44:38 via Website

Hallo liebe potenzielle Helfer :grin:

ich hab das Problem, dass ich gestern noch mit Eclipse und dem AndroidSDK gearbeitet habe und nun ein Projekt was gestern 100% noch funktioniert hat vom Compiler nicht mehr akzeptiert wird.

Zuerst war es so, dass er so ziemlich alles was importiert werden muss rot unterstrichen hat, obwohl alle imports richtig waren!
(Wie gesagt gestern lief alles einwandfrei!!)
Dann habe ich ein bisschen rumexperementiert und jetzt kann er auch alles wieder importieren.
Aber bei einer einzigen Zeile bekomm ich noch ne Fehlermeldung!

Ich weiß echt nicht mehr weiter. Hab schon alles probiert. Project gefixt und gecleant. Aus dem Workspace das Prjekt gelöscht und neu importiert.
Zwischendurch kam auch der Fehler:
"build path contains duplicate entry 'gen' for project android"
Das war glaub ich als ich das Projekt neu importiert habe.

Hier der Code von der MainActivity.java die es nicht mehr tut ...

1package de.gundb.gaesteliste;
2
3import android.app.ActionBar;
4import android.app.ActionBar.Tab;
5import android.app.Activity;
6import android.app.Fragment;
7import android.app.FragmentTransaction;
8import android.content.Context;
9import android.os.Bundle;
10import android.util.Log;
11import android.widget.Toast;
12
13
14
15
16
17public class MainActivity extends Activity {
18
19 public static Context appContext;
20
21 @Override
22 protected void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.activity_main);
25
26 ActionBar bar = getActionBar();
27 bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
28 ActionBar.Tab tabAbwesend = bar.newTab().setText("Abwesend");
29 ActionBar.Tab tabAnwesend = bar.newTab().setText("Anwesend");
30
31 Fragment fragmentAbwesend = new AbwesendActivity(); // Das ist die besagte Zeile 31 die nicht funktioniert!!!!!!!! :angry:
32 Fragment fragmentAnwesend = new AnwesendActivity();
33
34 tabAbwesend.setTabListener(new MyTabsListener(fragmentAbwesend));
35 tabAnwesend.setTabListener(new MyTabsListener(fragmentAnwesend));
36
37 bar.addTab(tabAbwesend);
38 bar.addTab(tabAnwesend);
39
40 }
41
42 protected class MyTabsListener implements ActionBar.TabListener {
43
44 private Fragment fragment;
45
46 public MyTabsListener(Fragment fragment) {
47 this.fragment = fragment;
48 }
49
50 @Override
51 public void onTabSelected(Tab tab, FragmentTransaction ft) {
52 ft.replace(R.id.fragment_place, fragment);
53 }
54
55 @Override
56 public void onTabUnselected(Tab tab, FragmentTransaction ft) {
57 ft.remove(fragment);
58 Log.e("Denis", "Fragment wurde removed");
59 }
60
61 @Override
62 public void onTabReselected(Tab tab, FragmentTransaction ft) {
63 Toast.makeText(MainActivity.appContext, "Reseleted", Toast.LENGTH_LONG).show();
64 }
65
66 }
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 /*ListView gaesteList;
99 ArrayList<String> gaesteArrayList = new ArrayList<String>();
100 ArrayAdapter<String> gaesteAdapter;
101 Context context;
102 String feedUrl = "-- ich durfte den Link hier nicht drinne stehen lassen laut dem Forum ---";
103
104 @Override
105 protected void onCreate(Bundle savedInstanceState)
106 {
107 super.onCreate(savedInstanceState);
108 setContentView(R.layout.activity_main);
109 context = this;
110 gaesteList = (ListView) findViewById(R.id.gaesteList);
111 gaesteAdapter = new ArrayAdapter<String>(this, R.layout.gaeste_list_item, gaesteArrayList);
112 gaesteList.setAdapter(gaesteAdapter);
113
114 VideoListTask loaderTask = new VideoListTask();
115 loaderTask.execute();
116
117 }
118
119 @Override
120 public boolean onCreateOptionsMenu(Menu menu) {
121 // Inflate the menu; this adds items to the action bar if it is present.
122 getMenuInflater().inflate(R.menu.main, menu);
123 return true;
124 }
125
126 public class VideoListTask extends AsyncTask<Void, Void, Void>{
127
128 ProgressDialog dialog;
129 @Override
130 protected void onPreExecute()
131 {
132 dialog = new ProgressDialog(context);
133 dialog.setTitle("Lade Gäste");
134 dialog.show();
135 super.onPreExecute();
136 }
137
138 @Override
139 protected Void doInBackground(Void... params)
140 {
141 HttpClient client = new DefaultHttpClient();
142 HttpGet getRequest = new HttpGet(feedUrl);
143
144 try
145 {
146 HttpResponse responce = client.execute(getRequest);
147 StatusLine statusLine = responce.getStatusLine();
148 int statusCode = statusLine.getStatusCode();
149
150 if(statusCode != 200)
151 {
152 return null;
153 }
154
155 InputStream jsonStream = responce.getEntity().getContent();
156 BufferedReader reader = new BufferedReader(new InputStreamReader(jsonStream));
157 StringBuilder builder = new StringBuilder();
158 String line;
159 while((line = reader.readLine())!=null)
160 {
161 builder.append(line);
162 }
163
164 String jsonData = builder.toString();
165 Log.e("jsonData", jsonData);
166
167 JSONObject jsonObject = new JSONObject(jsonData); // aus dem Builder mit Daten speisen
168
169 JSONArray ArrayinnerhalbPosts = jsonObject.getJSONArray("posts"); // jetzt bin ich innerhalb von "posts"
170
171 JSONObject dasGesamtePost = ArrayinnerhalbPosts.getJSONObject(0); // jetzt hab ich das gesamt erste "post"
172 String log1 = dasGesamtePost.toString();
173 Log.e("log1", log1); // gibt das gesamte erste "post" inklusive dem "post" aus!
174
175 JSONObject innerhalbPost = dasGesamtePost.getJSONObject("post"); // jetzt bin ich innerhalb von "post"
176 String log2 = innerhalbPost.toString();
177 Log.e("log2", log2); // gibt das gesamte erste "post" OHNE das "post" aus!!!
178
179 String log3 = innerhalbPost.getString("NACHNAME");
180 Log.e("log3", log3);
181
182 for(int i=0; i<ArrayinnerhalbPosts.length(); i++)
183 {
184
185 JSONObject einzelnGesamtPost = ArrayinnerhalbPosts.getJSONObject(i);
186 JSONObject innerhalbDesPost = einzelnGesamtPost.getJSONObject("post");
187 gaesteArrayList.add(innerhalbDesPost.getString("NACHNAME") + ", " + innerhalbDesPost.getString("VORNAME"));
188
189 }
190
191
192
193
194 //for(int i =0; i<items.length(); i++)
195 //{
196 //JSONObject video = items.getJSONObject(1);
197 //gaesteArrayList.add(video.getString("VORNAME"));
198 //}
199
200
201 }
202 catch (ClientProtocolException e)
203 {
204 e.printStackTrace();
205 }
206 catch (IOException e)
207 {
208 e.printStackTrace();
209 }
210 catch (JSONException e)
211 {
212 e.printStackTrace();
213 }
214
215 return null;
216 }
217
218 @Override
219 protected void onPostExecute(Void result) {
220 dialog.dismiss();
221 gaesteAdapter.notifyDataSetChanged();
222 super.onPostExecute(result);
223 }
224 }*/
225
226}

Das auskommentierte braucht ihr meiner Meinung nach nicht beachten, dass waren nur alte Versuche von mir - habs sicherheitshalber aber mal doch mit reingetan. Wenn ihr noch andere Files braucht sagt mir bescheid!

Der Fehler hierbei lautet:
"Type mismatch: cannot convert from AbwesendActivity to Fragment MainActivity.java /GaesteListeV3/src/de/gundb/gaesteliste line 31"

Aber ich versteh das nicht weil gestern ging das noch und ich habe da nichts am Code geändert und die Zeile darunter tuts ja auch wunderbar!!

Vielen Dank schon mal für eure Mühen!
Ich hab mir echt schon Mühe gegeben es selbst herauszufinden aber jetzt weiß ich echt nicht mehr weiter!

LG!!





** EDIT **

Ich hatten noch eine ältere Version des Projektes und hab versucht da die neueren Daten per Copy & Paste in das alte Projekt einzupflegen.
Hat alles soweit geklappt bis zum Punkt wo ich die AbwesendActivity.java durch den neuen Code ersetzt habe.
Da trat dann plötzlich der oben genannte Fehler in Zeile 31 auf!!

Hier also auch noch der neue Code der AbwesendActivity.java

1package de.gundb.gaesteliste;
2
3import java.io.BufferedReader;
4import java.io.IOException;
5import java.io.InputStream;
6import java.io.InputStreamReader;
7import java.util.ArrayList;
8
9import org.apache.http.HttpResponse;
10import org.apache.http.StatusLine;
11import org.apache.http.client.ClientProtocolException;
12import org.apache.http.client.HttpClient;
13import org.apache.http.client.methods.HttpGet;
14import org.apache.http.impl.client.DefaultHttpClient;
15import org.json.JSONArray;
16import org.json.JSONException;
17import org.json.JSONObject;
18
19import android.content.Context;
20import android.os.AsyncTask;
21import android.os.Bundle;
22import android.support.v4.app.Fragment;
23import android.util.Log;
24import android.view.LayoutInflater;
25import android.view.View;
26import android.view.ViewGroup;
27import android.widget.ArrayAdapter;
28import android.widget.ListView;
29
30public class AbwesendActivity extends Fragment {
31
32 ListView gaesteList;
33 ArrayList<String> gaesteArrayList = new ArrayList<String>();
34 ArrayAdapter<String> gaesteAdapter = new ArrayAdapter<String>(getActivity(), R.layout.gaeste_list_item, gaesteArrayList);;
35 Context context;
36 //String feedUrl = "-- ich musste wieder die URLs löschen --";
37 String feedUrl = "-- ich musste wieder die URLs löschen --";
38 View v;
39
40
41
42
43 @Override
44 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
45 v = inflater.inflate(R.layout.abwesend, container, false);
46 context = getActivity();
47 Log.e("Denis", "1");
48 gaesteList = (ListView) v.findViewById(R.id.gaestelist);
49 Log.e("Denis", "2");
50 //gaesteAdapter
51 Log.e("Denis", "3");
52
53 VideoListTask loaderTask = new VideoListTask();
54 loaderTask.execute();
55
56 return v;
57
58 }
59
60 public class VideoListTask extends AsyncTask<Void, Void, Void>{
61
62 //ProgressDialog dialog;
63 @Override
64 protected void onPreExecute()
65 {
66 //dialog = new ProgressDialog(context);
67 //dialog.setTitle("Lade Gäste");
68 //dialog.show();
69 super.onPreExecute();
70 }
71
72 @Override
73 protected Void doInBackground(Void... params)
74 {
75 HttpClient client = new DefaultHttpClient();
76 HttpGet getRequest = new HttpGet(feedUrl);
77
78 try
79 {
80 HttpResponse responce = client.execute(getRequest);
81 StatusLine statusLine = responce.getStatusLine();
82 int statusCode = statusLine.getStatusCode();
83
84 if(statusCode != 200)
85 {
86 return null;
87 }
88
89 InputStream jsonStream = responce.getEntity().getContent();
90 BufferedReader reader = new BufferedReader(new InputStreamReader(jsonStream));
91 StringBuilder builder = new StringBuilder();
92 String line;
93 while((line = reader.readLine())!=null)
94 {
95 builder.append(line);
96 }
97
98 String jsonData = builder.toString();
99 Log.e("jsonData", jsonData);
100
101 JSONObject jsonObject = new JSONObject(jsonData); // aus dem Builder mit Daten speisen
102
103 JSONArray ArrayinnerhalbPosts = jsonObject.getJSONArray("posts"); // jetzt bin ich innerhalb von "posts"
104
105 JSONObject dasGesamtePost = ArrayinnerhalbPosts.getJSONObject(0); // jetzt hab ich das gesamt erste "post"
106 String log1 = dasGesamtePost.toString();
107 Log.e("log1", log1); // gibt das gesamte erste "post" inklusive dem "post" aus!
108
109 JSONObject innerhalbPost = dasGesamtePost.getJSONObject("post"); // jetzt bin ich innerhalb von "post"
110 String log2 = innerhalbPost.toString();
111 Log.e("log2", log2); // gibt das gesamte erste "post" OHNE das "post" aus!!!
112
113 String log3 = innerhalbPost.getString("NACHNAME");
114 Log.e("log3", log3);
115
116 gaesteAdapter.clear();
117 for(int i=0; i<ArrayinnerhalbPosts.length(); i++)
118 {
119
120 JSONObject einzelnGesamtPost = ArrayinnerhalbPosts.getJSONObject(i);
121 JSONObject innerhalbDesPost = einzelnGesamtPost.getJSONObject("post");
122 gaesteArrayList.add(innerhalbDesPost.getString("NACHNAME") + ", " + innerhalbDesPost.getString("VORNAME"));
123
124 }
125 }
126 catch (ClientProtocolException e)
127 {
128 e.printStackTrace();
129 }
130 catch (IOException e)
131 {
132 e.printStackTrace();
133 }
134 catch (JSONException e)
135 {
136 e.printStackTrace();
137 }
138
139 return null;
140 }
141
142 @Override
143 protected void onPostExecute(Void result) {
144 //dialog.dismiss();
145 gaesteAdapter.notifyDataSetChanged();
146 gaesteList.setAdapter(gaesteAdapter);
147 Log.e("Denis", "Adapter wurde geladen");
148 super.onPostExecute(result);
149 }
150 }
151
152}

— geändert am 17.10.2013, 11:58:59

Antworten
Denis Agca
  • Forum-Beiträge: 3

17.10.2013, 12:16:49 via Website

Fehler gefunden!!!
in der AbwesendActivity.java war ein einzelner import falsch!
es ist nicht import.android.support.v4.app.Fragment, sondern import.android.app.Fragment!!!

Antworten
Stefan J.
  • Forum-Beiträge: 30

17.10.2013, 18:21:44 via Website

solid first post :)

Antworten
Dani Sahne
  • Forum-Beiträge: 107

18.10.2013, 07:05:35 via App

Siehste, is doch nicht alles 100% richtig. Aber einfach mal felsenfest behaupten dass alles richtig ist.

Antworten
Denis Agca
  • Forum-Beiträge: 3

18.10.2013, 09:04:59 via Website

Ja ist nen bisschen dumm gelaufen aber ich war echt am verzweifeln und schon stundenlang dabei ;)
Ja die Zeile von der ichs behauptet habe war ja auch richtig. >_>
aber nächstes mal lass ich mir noch 5 min mehr zeit :grin:

Antworten