- Forum-Beiträge: 60
18.10.2013, 14:38:38 via Website
18.10.2013 14:38:38 via Website
Ich habe filgenden Code :
EventItemAdapter.Java :
2
3import java.util.ArrayList;
4
5import android.content.Context;
6import android.view.LayoutInflater;
7import android.view.View;
8import android.view.ViewGroup;
9import android.widget.ArrayAdapter;
10import android.widget.ImageView;
11import android.widget.TextView;
12
13 public class EventItemAdapter extends ArrayAdapter<Event> {
14 private final Context context;
15 private final ArrayList<Event> values;
16 private String datum_begin = null;
17 private String datum_end = null;
18 private String datum_final = null;
19 private String[] dummyString;
20 private String ort = null;
21 private String platz = null;
22 private View rowView = null;
23 private int i ;
24 public EventItemAdapter(Context context, ArrayList<Event> arrayList) {
25 super(context, R.layout.list_item, arrayList);
26 this.context = context;
27 this.values = arrayList;
28 i = arrayList.size();
29 System.out.println("Anzahl der Einträge " + String.valueOf(i));
30 }
31
32 @Override
33 public View getView(int position, View convertView, ViewGroup parent) {
34 LayoutInflater inflater = (LayoutInflater) context
35 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
36 if (!values.get(position).getNoentry()) {
37 rowView = inflater.inflate(R.layout.list_item, parent, false);
38 // selects the Views in a Variable
39 TextView subjTextView = (TextView) rowView.findViewById(R.id.subject);
40 TextView evDateTextView = (TextView) rowView.findViewById(R.id.DateView);
41
42 TextView PlatzCaption = (TextView) rowView.findViewById(R.id.PlatzCaption);
43 TextView PlatzTextView = (TextView) rowView.findViewById(R.id.PlatzView);
44 TextView OrtCaption = (TextView) rowView.findViewById(R.id.OrtCaption);
45 TextView OrtTextView = (TextView) rowView.findViewById(R.id.OrtView);
46 ImageView ttypeImageView = (ImageView) rowView.findViewById(R.id.TypeView);
47
48 // change the Viewvalues
49
50 subjTextView.setText(values.get(position).getSubject()); // Subject
51 // Veranstalter
52 // veranstalter = values.get(position).getVeranstalter();
53 // Ort
54 ort = values.get(position).getOrt();
55 if (ort == null) {
56 OrtCaption.setVisibility(View.GONE);
57 OrtTextView.setVisibility(View.GONE);
58 } else {
59 OrtCaption.setVisibility(View.VISIBLE);
60 OrtTextView.setVisibility(View.VISIBLE);
61 OrtTextView.setText(ort);
62 }
63 // Platz
64 platz = values.get(position).getPlatz();
65 if (platz == null) {
66 PlatzCaption.setVisibility(View.GONE);
67 PlatzTextView.setVisibility(View.GONE);
68 } else {
69 PlatzCaption.setVisibility(View.VISIBLE);
70 PlatzTextView.setVisibility(View.VISIBLE);
71 PlatzTextView.setText(platz);
72 }
73 // Datum Format and set the value
74 datum_begin = values.get(position).getEvent_date();
75 datum_end = values.get(position).getEvent_end();
76 datum_final = " ";
77 dummyString = datum_begin.split("-");
78 datum_final = datum_final + dummyString[2] + '.' + dummyString[1] + '.' + dummyString[0];
79 if (datum_end != "") {
80 dummyString = datum_end.split("-");
81 if (Integer.parseInt(dummyString[0]) > 0) {
82 datum_final = datum_final + " bis " + dummyString[2] + '.' + dummyString[1] + '.' + dummyString[0];
83 }
84 }
85 evDateTextView.setText(datum_final);
86 datum_final = "";
87 // chance the TType Image
88 String TypeResFile = "white_";
89 int a = values.get(position).getTtype();
90 String c = TypeResFile+Integer.toString(a);
91 ttypeImageView.setImageResource(this.context.getResources().getIdentifier(c, "drawable", "de.themicroborgs.tuningtreffen"));
92 } else rowView = inflater.inflate(R.layout.noentry, parent, false);
93 // Returns the View
94 return rowView;
95 }
96 }
in der EventListActivity habe ich folgenden Code um die Daten aus zu lesen :
2 private Exception exception;
3 String response = "";
4 private ArrayList<Event> Entrys = null;
5
6 @Override
7 protected void onProgressUpdate(Void... list) {
8 System.out.println("Run onProgressUpdate");
9 }
10
11 @Override
12 protected void onPreExecute() {
13 final View pbView = (View) findViewById(R.id.Loader);
14 pbView.setVisibility(View.VISIBLE);
15 pbView.refreshDrawableState();
16 }
17
18 @Override
19 protected void onPostExecute(String str) {
20 // TODO: check this.exception
21 // TODO: do something with the feed
22
23 System.out.println("Run onPostExecute");
24 if (Entrys != null) {
25 evAdapter = new EventItemAdapter(EventListActivity.this, Entrys);
26 final ListView EventView = (ListView) findViewById(R.id.list);
27 EventView.setAdapter(evAdapter);
28 }
29 final View pbView = (View) findViewById(R.id.Loader);
30 pbView.setVisibility(View.GONE);
31 pbView.refreshDrawableState();
32 }
33
34 @Override
35 final protected String doInBackground(String... params) {
36 // TODO Auto-generated method stub
37 System.out.println("Run doInBackground");
38 eventList.parse();
39 Entrys = eventList.getEvents();
40 return response;
41 }
42
43}
So nun das Log :
210-18 14:27:52.178: E/AndroidRuntime(3655): java.lang.IndexOutOfBoundsException: Invalid index 3, size is 1
310-18 14:27:52.178: E/AndroidRuntime(3655): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
410-18 14:27:52.178: E/AndroidRuntime(3655): at java.util.ArrayList.get(ArrayList.java:308)
510-18 14:27:52.178: E/AndroidRuntime(3655): at de.themicroborgs.tuningtreffen.EventItemAdapter.getView(EventItemAdapter.java:36)
610-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.AbsListView.obtainView(AbsListView.java:2161)
710-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.ListView.makeAndAddView(ListView.java:1840)
810-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.ListView.fillDown(ListView.java:675)
910-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.ListView.fillSpecific(ListView.java:1333)
1010-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.ListView.layoutChildren(ListView.java:1633)
1110-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.AbsListView.onLayout(AbsListView.java:2012)
1210-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.View.layout(View.java:14296)
1310-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewGroup.layout(ViewGroup.java:4562)
1410-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
1510-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
1610-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
1710-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.View.layout(View.java:14296)
1810-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewGroup.layout(ViewGroup.java:4562)
1910-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
2010-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.View.layout(View.java:14296)
2110-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewGroup.layout(ViewGroup.java:4562)
2210-18 14:27:52.178: E/AndroidRuntime(3655): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:349)
2310-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.View.layout(View.java:14296)
2410-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewGroup.layout(ViewGroup.java:4562)
2510-18 14:27:52.178: E/AndroidRuntime(3655): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
2610-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.View.layout(View.java:14296)
2710-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewGroup.layout(ViewGroup.java:4562)
2810-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1976)
2910-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1730)
3010-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
3110-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
3210-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
3310-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.Choreographer.doCallbacks(Choreographer.java:562)
3410-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.Choreographer.doFrame(Choreographer.java:532)
3510-18 14:27:52.178: E/AndroidRuntime(3655): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
3610-18 14:27:52.178: E/AndroidRuntime(3655): at android.os.Handler.handleCallback(Handler.java:730)
3710-18 14:27:52.178: E/AndroidRuntime(3655): at android.os.Handler.dispatchMessage(Handler.java:92)
3810-18 14:27:52.178: E/AndroidRuntime(3655): at android.os.Looper.loop(Looper.java:137)
3910-18 14:27:52.178: E/AndroidRuntime(3655): at android.app.ActivityThread.main(ActivityThread.java:5289)
4010-18 14:27:52.178: E/AndroidRuntime(3655): at java.lang.reflect.Method.invokeNative(Native Method)
4110-18 14:27:52.178: E/AndroidRuntime(3655): at java.lang.reflect.Method.invoke(Method.java:525)
4210-18 14:27:52.178: E/AndroidRuntime(3655): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
4310-18 14:27:52.178: E/AndroidRuntime(3655): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
4410-18 14:27:52.178: E/AndroidRuntime(3655): at dalvik.system.NativeStart.main(Native Method)
Was mich am Meisten wundert ist das Diese Exception nicht immer auftritt.
Auf meinem Tablet (Galaxy Tab 2) taucht sie nach 2 maliger aktion auf.
Auf Meinem Handy (Galaxy S III) bisher Garnicht
und im Emulator nach knapp 8 maligem ausführen.
hat jemand eine Idee ? oder bracht ihr noch weiteren code um zu wissen woran es liegen kann ?
gruss Sascha
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.