| |||||||
Das Thema "ArrayAdapter für Custom ListView" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
| Ich bin gerade dabei meine ListView etwas besser zu gestalten als nur den üblichen String ![]() Hab nun ein paar Tutorials angeschaut und auch schon sonst in Foren geschaut, aber irgend wie sehe ich nicht wo mein Fehler ist. Ich hoffe eure geschulten Augen sehen es und können mir den Tipp geben ![]() Hier der Aufruf aus meiner MainActivity Code: setContentView(R.layout.main);
this.listView = (ListView) findViewById(R.id.list_view);
this.listView.setAdapter(new RssItemAdapter(this, android.R.layout.simple_list_item_1, this.rssHandler.getRssItems() )); Code: <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout> Code: <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/list_item_table">
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/list_item_table_row_1">
<TextView android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15px" android:layout_marginRight="15px" android:id="@+id/list_item_title"></TextView>
</TableRow>
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/list_item_table_row_2">
<TextView android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15px" android:layout_marginRight="15px" android:id="@+id/list_item_date"></TextView>
</TableRow>
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/list_item_table_row_3">
<TextView android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15px" android:layout_marginRight="15px" android:id="@+id/list_item_description"></TextView>
</TableRow>
</TableLayout>
</LinearLayout> Code: package ch.nonameweb.android.ogame.rss;
import java.util.ArrayList;
import java.util.List;
import android.R;
import android.content.Context;
import android.net.NetworkInfo.DetailedState;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class RssItemAdapter extends ArrayAdapter<RssItem>{
protected ArrayList<RssItem> rssItems;
public RssItemAdapter(Context context, int textViewResourceId, ArrayList<RssItem> rssItems) {
super(context, textViewResourceId, rssItems);
this.rssItems = rssItems;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.list_item, null);
}
RssItem item = rssItems.get(position);
if ( item != null ) {
TextView title = (TextView) view.findViewById(R.layout.list_item_title);
TextView date = (TextView) view.findViewById(R.id.list_item_date);
TextView description = (TextView) view.findViewById(R.id.list_item_description);
if ( title != null ) {
title.setText( item.getTitle() );
}
if ( date != null ) {
date.setText( item.getDate().toString() );
}
if ( description != null ) {
description.setText( item.getDescription() );
}
}
return v;
}
} Ich denke mal das der Knopf irgend wo im Adapter ist, da mir dort beim Code das Layout (list_item) nicht gefunden wird. Code: view = vi.inflate(R.layout.list_item, null); Dadurch finde ich natürlich auch diese dann nicht wo es auch wieder Rot ist ![]() Code: TextView title = (TextView) view.findViewById(R.layout.list_item_title);
TextView date = (TextView) view.findViewById(R.id.list_item_date);
TextView description = (TextView) view.findViewById(R.id.list_item_description); Ich freue mich über jeden schupser in die richtige Richtung. Danke für eure Zeit. |
| | |
| | #2 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Gibt es eine Exception? Dann bitte mal den Stacktrace angeben
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #4 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
du hast sicher das falsche R importiert, wenn er dein layout nicht findet import android.R; ist falsch import mein.projekt.R wäre richtig
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #5 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
|
@sowrdi: Danke das hat geholfen, nun kann ich es wieder ausführen. Leider habe ich direkt ein weiteres Problem und komme nicht recht draus was wie weshalb. Eventuell wisst ihr ja was. Beim Aufruf also hier Code: this.listView.setAdapter(new RssItemAdapter(this, android.R.layout.simple_list_item_1, this.rssHandler.getRssItems() )); Code: D/AndroidRuntime( 4758): Shutting down VM
W/dalvikvm( 4758): threadid=1: thread exiting with uncaught exception (group=0x40015568)
E/AndroidRuntime( 4758): FATAL EXCEPTION: main
E/AndroidRuntime( 4758): java.lang.RuntimeException: Unable to start activity ComponentInfo{ch.nonameweb.android.ogame/ch.nonameweb.android.ogame.MainActivity}: java.lang.NullPointerException
E/AndroidRuntime( 4758): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1655)
E/AndroidRuntime( 4758): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1671)
E/AndroidRuntime( 4758): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime( 4758): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime( 4758): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 4758): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime( 4758): at android.app.ActivityThread.main(ActivityThread.java:3694)
E/AndroidRuntime( 4758): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 4758): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 4758): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
E/AndroidRuntime( 4758): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
E/AndroidRuntime( 4758): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 4758): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 4758): at ch.nonameweb.android.ogame.MainActivity.onCreate(MainActivity.java:55)
E/AndroidRuntime( 4758): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 4758): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1619)
E/AndroidRuntime( 4758): ... 11 more
W/ActivityManager( 1279): Force finishing activity ch.nonameweb.android.ogame/.MainActivity
W/ActivityManager( 1279): Activity pause timeout for HistoryRecord{40d59b10 ch.nonameweb.android.ogame/.MainActivity}
I/Process ( 4758): Sending signal. PID: 4758 SIG: 9 Geändert von surtic (27.08.2011 um 11:49 Uhr) |
| | |
| | #6 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
|
Okey, ich bin wieder etwas weiter gekommen. Das Problem besteht anscheinend mit der Tabelle die ich in list_item.xml habe, muss ich die zuerst speziell aufrufen um die einzelnen Texte darin zu bearbeiten? |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| SimpleCursorAdapter anstatt ArrayAdapter benutzen | ensacom | Android App Entwicklung | 17 | 11.06.2011 01:04 |
| Custom Recovery für 2.3.4 | muenzmann | Root / Hacking / Modding für Nexus S | 6 | 01.06.2011 11:28 |
| listView.setChoiceMode() in einer custom ListView | mr.freeze | Android App Entwicklung | 0 | 16.02.2011 09:57 |
| ArrayAdapter Liste befüllen aus res/values/arrays.xml | mr.freeze | Android App Entwicklung | 0 | 10.12.2010 14:04 |
| NullPointerException bei ArrayAdapter | nithdi | Android App Entwicklung | 7 | 29.04.2010 22:58 |