2017-08-06 1 views
0

Ich habe seit Tagen versucht, eine Lösung für mein Problem zu finden, aber jetzt habe ich beschlossen, zu versuchen, Sie zu fragen. Ich bin ein Anfänger für die Programmierung von Android, also bitte verzeih mir.Ändern Sie die Textansicht meiner Listenansicht

Ich habe eine Haupt Activity mit einer Listview drin.

Ich verwende eine Simplecursoradapter, um es mit Informationen aus meiner Datenbank und einem benutzerdefinierten Layout, das ich als XML erstellt.

Mein Problem ist, ich möchte einige der Begriffe oder die Einheiten ändern, die ich in diesem benutzerdefinierten Layout verwendet, die nicht durch die Datenbank gespeist wird.

Wenn ich settext zu der TextViews in dort verwende es nicht, stürzt die APP ab, weil meine auf ein anderes Layout für diese Klasse gesetzt wird, schätze ich. Ich habe inflaters betrachtet und versucht zu sehen, ob ich das XML programmierbar ändern könnte, benutze eine Zeichenkette von String.xml und ändere das. Aber soweit ich sehen kann, sind diese keine Option. Später fand ich diesen Code auf Stackoverflow

Activity activity = (Activity)getContext(); 
TextView t = (TextView)activity.findViewById(R.id.txtDisponible); 
t.setText("E-ticket validado"); 

Aber ich kann das nicht bekommen zu arbeiten, weil die erste Zeile nicht für mich arbeitet. Die Activity gibt mir die getcontext Methode nicht. Und selbst wenn ich das zur Arbeit bringen würde, würde ich nicht wissen, ob das funktionieren würde. Kannst du mir zeigen, in welche Richtung ich gehen muss? Ab sofort habe ich keine Klasse für meine ListView, ist das der Weg zu gehen. Ich möchte das so einfach wie möglich halten.

Vielen Dank für Ihre Hilfe.

EDIT 1:

Okay, habe ich versucht, dies in meinem Code zu setzen:

LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.item_list, null); 
    TextView t = (TextView) view.findViewById(R.id.kmListview); 
    t.setText("bok"); 

Die App nicht abstürzt, aber es das Textview ändert sich nicht.

+0

Einstellung onyl TextView löst nicht Ihr Problem. Sie müssen eine Liste von Daten in Ihrem Adapter behalten und Sie müssen Ihre Liste aktualisieren. Nach jeder Aktualisierung des Listenelements oder der Listenelemente müssen Sie die notifyDataSetChange() - Methode Ihres Adapters aufrufen. Sie haben wirklich so viel Probleme damit, wie listView funktioniert. Ich denke, es ist der schwierigste Teil von Android. Zuallererst müssen Sie ListView verstehen, Elemente in ListView recyceln und ViewHolder (für Layouts) in ListView verwenden und auch Elemente (für Daten) von listView verwalten. –

Antwort

0

Aktivität erweitert die ContextWrapper-Klasse und Sie sollten diese oder getBaseContext() verwenden, da es keine Methode wie getContext() gibt, die die ContextWrapper-Klasse erweitert.

Verwenden Sie dies als Context oder GetBaseContext() in Ihrer Actitiy und ich denke, dass Ihr Problem gelöst wird.

+0

Hmm .. Wenn ich den Code in, bekomme ich diesen Fehler java.lang.ClassCastException: android.app.ContextImpl kann nicht in com.uniqueapps.driverslogger2.Main – Nicer

+0

Soweit ich sehen kann, tritt dieses Problem auftritt weil ich die Main-Aktivität dazu nutze .. Aber da ich weder Klasse noch Aktivität für diese Listview habe, was soll ich dann tun? – Nicer

+0

Folgen Sie diesem Link [https://github.com/codepath/android_guides/wiki/Populating-a-ListView-with-a-CursorAdapter] hoffe, dass es zum besseren Verständnis hilft. –

Verwandte Themen