Ik ben bezig met een project waarbij ik gegevens uit een externe database in een listview wil neerzetten. De gegevens die in de listview moeten bestaan uit een class: project. Met daarin gegevens als name, id, user etc. Alleen de name wil ik laten weergeven en wanneer een project geselecteerd wordt wil ik weten om welke het gaat zodat in een volgend scherm de details weergegeven kunnen worden.
Nu heb ik een tutorial hiervoor gevolgd (click) daarnaast komt de code overeen met wat ik vanuit een google conferentie/pdf heb kunnen vinden (click) en volgens mij heb ik alles helemaal netjes overgenomen maar ik krijg alsnog de volgende foutmelding:
05-01 11:07:34.751: ERROR/AndroidRuntime(680): java.lang.NullPointerException
05-01 11:07:34.751: ERROR/AndroidRuntime(680): at com.ConsultancyNow.projectBaseAdapter.getView(projectBaseAdapter.java:56)
(lijn 56 komt overeen met 17 in de codeview.
De projects die ik meegeef test ik echter iets eerder of er wat in zit en dan geeft hij netjes bij de vraag projects.get(i).getName() de naam van het project aan. De foutmelding dat er op lijn 56 niets kan worden omgezet begrijp ik dan ook niet.
Het volgende codewerk heb ik:
projectBaseAdapter.java
viewProjectsMain.java
Nu heb ik een tutorial hiervoor gevolgd (click) daarnaast komt de code overeen met wat ik vanuit een google conferentie/pdf heb kunnen vinden (click) en volgens mij heb ik alles helemaal netjes overgenomen maar ik krijg alsnog de volgende foutmelding:
05-01 11:07:34.751: ERROR/AndroidRuntime(680): java.lang.NullPointerException
05-01 11:07:34.751: ERROR/AndroidRuntime(680): at com.ConsultancyNow.projectBaseAdapter.getView(projectBaseAdapter.java:56)
(lijn 56 komt overeen met 17 in de codeview.
De projects die ik meegeef test ik echter iets eerder of er wat in zit en dan geeft hij netjes bij de vraag projects.get(i).getName() de naam van het project aan. De foutmelding dat er op lijn 56 niets kan worden omgezet begrijp ik dan ook niet.
Het volgende codewerk heb ik:
projectBaseAdapter.java
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView == null) { //MAKE HERE REFERENCES TO THE LISTVIEW ROW LAYOUT convertView = mInflater.inflate(R.layout.listview_projects_row, parent, false); holder = new ViewHolder(); holder.projectName = (TextView) convertView.findViewById(R.id.listview_project_row); } else { holder = (ViewHolder) convertView.getTag(); } //SET HERE THE VALUES FOR THE VISIBLE VARIABLES holder.projectName.setText(projects.get(position).getName()); return convertView; } //CREATE HERE THE VISIBLE VARIABLES static class ViewHolder { TextView projectName; } |
viewProjectsMain.java
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| final ListView varListView; varListView = getListView(); varListView.setAdapter(new projectBaseAdapter(this, projects)); Log.d("Rob", "Adapter Set"); varListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Object o = varListView.getItemAtPosition(position); Project project = (Project) o; Intent i = new Intent("com.ConsultancyNow.VIEWPROJECT"); Log.d("Rob", "Gekozen project: " + project.getName()); i.putExtra("Project", project.getName()); //even dirty om te testen startActivity(i); } }); |