- Forum-Beiträge: 7
02.02.2014, 23:00:19 via Website
02.02.2014 23:00:19 via Website
Ich habe schon einige Tag nach der Lösung gesucht, aber nix hat mir geholfen bei meinem Problem.
Ich möchte eine ListView erstellen, mit jeweils 2 TextViews.
Dabei verwende ich einen ArrayAdapter, den ich mit einer ArrayList <String[]> , einem selbstbearbeitetem "ListViewLayout" und dem id int - Wert des ersten TextViews initialisiert habe.
Das Problem ist, dass in der getView Methode eine NullPointerException geworfen wird.
Ihr seht es im Quellcode:
2
3 private static final String TAG = ListPersonen.class.getSimpleName();
4
5 private RegisterHelper helper;
6 private SQLiteDatabase registerDB;
7
8 private ArrayAdapter<String[]> adapter;
9 private ArrayList<String[]> entriesPersonen;
10
11 private ListView listView;
12 private Cursor personenCursor;
13
14 public TextView tv_Name, tv_Amount;
15
16 private final String SHOW_THIS_ENTRIES = "SELECT * FROM Personen ORDER BY name";
17
18 @Override
19 protected void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 // Remove title bar
22 this.requestWindowFeature(Window.FEATURE_NO_TITLE);
23
24 // Remove notification bar
25 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
26 WindowManager.LayoutParams.FLAG_FULLSCREEN);
27
28 setContentView(R.layout.list_personen_entries);
29
30 if (helper == null)
31 helper = new RegisterHelper(this);
32
33 listView = (ListView) findViewById(R.id.lv_personen);
34
35 showPersonenEntries();
36
37 Log.d(TAG, "Vor getView Methode");
38
39 adapter = new ArrayAdapter<String[]>(this,
40 andi.example.thedepts.R.layout.personen_info,
41 andi.example.thedepts.R.id.tv_peronen_name, entriesPersonen) {
42
43 @Override
44 public View getView(int position, View convertView, ViewGroup parent) {
45 Log.d(TAG, "In der getView Methode");
46 View v = convertView;
47
48 String[] entry = entriesPersonen.get(position);
49
50 if (v == null) {
51 Log.d(TAG, "v = null");
52
53 LayoutInflater myInflater = (LayoutInflater) ListPersonen.this
54 .getSystemService(LAYOUT_INFLATER_SERVICE);
55
56 v = myInflater.inflate(R.layout.personen_info, null);
57
58 tv_Name = (TextView) v
59 .findViewById(andi.example.thedepts.R.id.tv_peronen_name);
60 tv_Amount = (TextView) v
61 .findViewById(andi.example.thedepts.R.id.tv_personen_betrag);
62
63// tv_Name.setText(entry[0]);
64// tv_Amount.setText("€ " + entry[1]);
65
66 }
67
68 Log.d(TAG, entry[0] + " " + entry[1]);
69
70 // if (Float.parseFloat(entry[1]) < 0) {
71 // tv_Amount.setTextColor(Color.RED);
72 // }
73 // if (Float.parseFloat(entry[1]) > 0) {
74 // tv_Amount.setTextColor(Color.GREEN);
75 // }
76
77 return v;
78 }
79
80 };
81 Log.d(TAG, "Nach getView Methode");
82
83 listView.setAdapter(adapter);
84 // setListener();
85
86 }
87
88 public static class ViewHolder {
89 public TextView tv_Name, tv_Amount;
90 }
91
92 public String showPersonenEntries() {
93 registerDB = helper.getReadableDatabase();
94 entriesPersonen = new ArrayList<String[]>();
95 try {
96 personenCursor = registerDB.rawQuery(SHOW_THIS_ENTRIES, null);
97 while (personenCursor.moveToNext()) {
98 String temp1 = personenCursor.getString(0);
99 float temp2 = personenCursor.getFloat(1);
100
101 String[] entry = { temp1, String.valueOf(temp2) };
102
103 entriesPersonen.add(entry);
104
105 }
106
107 Log.d(TAG, "Wird angezeigt Personen");
108 } catch (Exception e) {
109 Log.e(TAG, "Fehler beim anzeigen :" + e.toString());
110 } finally {
111 registerDB.close();
112 }
113 return null;
114 }
Die Exception im LogCat.
202-02 21:57:38.004: D/ListPersonen(1727): Vor getView Methode
302-02 21:57:38.014: D/ListPersonen(1727): Nach getView Methode
402-02 21:57:38.064: D/ListPersonen(1727): In der getView Methode
502-02 21:57:38.064: D/ListPersonen(1727): v = null
602-02 21:57:38.084: D/ListPersonen(1727): hgf -657.0
702-02 21:57:38.084: D/AndroidRuntime(1727): Shutting down VM
802-02 21:57:38.084: W/dalvikvm(1727): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
902-02 21:57:38.134: E/AndroidRuntime(1727): FATAL EXCEPTION: main
1002-02 21:57:38.134: E/AndroidRuntime(1727): java.lang.NullPointerException
1102-02 21:57:38.134: E/AndroidRuntime(1727): at andi.example.thedepts.ListPersonen$1.getView(ListPersonen.java:105)
1202-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.AbsListView.obtainView(AbsListView.java:2271)
1302-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
1402-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.ListView.onMeasure(ListView.java:1156)
1502-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.View.measure(View.java:15172)
1602-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
1702-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
1802-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
1902-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
2002-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.View.measure(View.java:15172)
2102-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
2202-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
2302-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.View.measure(View.java:15172)
2402-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
2502-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
2602-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
2702-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
2802-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.View.measure(View.java:15172)
2902-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
3002-02 21:57:38.134: E/AndroidRuntime(1727): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
3102-02 21:57:38.134: E/AndroidRuntime(1727): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
3202-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.View.measure(View.java:15172)
3302-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850)
3402-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102)
3502-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275)
3602-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
3702-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
3802-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
3902-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
4002-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.Choreographer.doFrame(Choreographer.java:525)
4102-02 21:57:38.134: E/AndroidRuntime(1727): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
4202-02 21:57:38.134: E/AndroidRuntime(1727): at android.os.Handler.handleCallback(Handler.java:615)
4302-02 21:57:38.134: E/AndroidRuntime(1727): at android.os.Handler.dispatchMessage(Handler.java:92)
4402-02 21:57:38.134: E/AndroidRuntime(1727): at android.os.Looper.loop(Looper.java:137)
4502-02 21:57:38.134: E/AndroidRuntime(1727): at android.app.ActivityThread.main(ActivityThread.java:4745)
4602-02 21:57:38.134: E/AndroidRuntime(1727): at java.lang.reflect.Method.invokeNative(Native Method)
4702-02 21:57:38.134: E/AndroidRuntime(1727): at java.lang.reflect.Method.invoke(Method.java:511)
4802-02 21:57:38.134: E/AndroidRuntime(1727): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
4902-02 21:57:38.134: E/AndroidRuntime(1727): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
5002-02 21:57:38.134: E/AndroidRuntime(1727): at dalvik.system.NativeStart.main(Native Method)
vielleicht kann mir irgendwer helfen. Ich wäre sehr Dankbar.
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.