C
CSharper
Neues Mitglied
- 0
Hallo,
nachdem ich so einige Apps fürs Windows Phone programmiert habe, sammle ich grade meine ersten Erfahrungen mit Android!
Hier versuche ich eine Listview
mit Objekten meiner Klasse Car zu füllen
dazu habe ich mir aus einem Tutorial einen BaseAdapter gebastelt
In meiner MainAcrtivity fülle ich eine ArrayList mit meinen Car Objekten.
Und übergebe dieses an meine ListView
Dabei haut es mich immer raus.
Hier mal ein Einblick in di Log Datei
01-20 16:33:30.909: E/AndroidRuntime(1030): FATAL EXCEPTION: main
01-20 16:33:30.909: E/AndroidRuntime(1030): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gpsdriverslog/com.gpsdriverslog.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.os.Looper.loop(Looper.java:137)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.main(ActivityThread.java:5039)
01-20 16:33:30.909: E/AndroidRuntime(1030): at java.lang.reflect.Method.invokeNative(Native Method)
01-20 16:33:30.909: E/AndroidRuntime(1030): at java.lang.reflect.Method.invoke(Method.java:511)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-20 16:33:30.909: E/AndroidRuntime(1030): at dalvik.system.NativeStart.main(Native Method)
01-20 16:33:30.909: E/AndroidRuntime(1030): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ListActivity.onContentChanged(ListActivity.java:243)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.Activity.setContentView(Activity.java:1881)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.gpsdriverslog.MainActivity.onCreate(MainActivity.java:31)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.Activity.performCreate(Activity.java:5104)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-20 16:33:30.909: E/AndroidRuntime(1030): ... 11 more
kann mir vielleicht jemand weiterhelfen?
Ich habe keine Ahnung und zu wenig Java Erfahrung!
nachdem ich so einige Apps fürs Windows Phone programmiert habe, sammle ich grade meine ersten Erfahrungen mit Android!
Hier versuche ich eine Listview
PHP:
<ListView
android:id="@+id/cars_listview"
android:layout_margin="150dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
PHP:
public class Car {
/** Property Brand */
private String _Brand;
public String getBrand() {
return _Brand;
}
public void setBrand(String Brand) {
if (_Brand != null)
this._Brand = Brand;
}
/** Property Model */
private String _Model;
public String getModel() {
return _Model;
}
public void setModel(String Model) {
if (_Model != null)
this._Model = Model;
}
/** Property Milage */
private int _Milage;
public int getMilage() {
return _Milage;
}
public void setMilage(int Milage) {
this._Milage = Milage;
}
}
PHP:
public class CarListBaseAdapter extends BaseAdapter {
private static ArrayList<Car> carDetailsrrayList;
private LayoutInflater l_Inflater;
public CarListBaseAdapter(Context context, ArrayList<Car> results) {
carDetailsrrayList = results;
l_Inflater = LayoutInflater.from(context);
}
public int getCount() {
return carDetailsrrayList.size();
}
public Object getItem(int position) {
return carDetailsrrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.carlistviewtemplate, null);
holder = new ViewHolder();
holder.txt_Brand = (TextView) convertView.findViewById(R.id.Brand);
holder.txt_Model = (TextView) convertView.findViewById(R.id.Model);
holder.txt_Milage = (TextView) convertView.findViewById(R.id.Milage);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.txt_Brand.setText(carDetailsrrayList.get(position).getBrand());
holder.txt_Model.setText(carDetailsrrayList.get(position).getModel());
holder.txt_Milage.setText(carDetailsrrayList.get(position).getMilage());
return convertView;
}
static class ViewHolder {
TextView txt_Brand;
TextView txt_Model;
TextView txt_Milage;
}
}
Und übergebe dieses an meine ListView
PHP:
private ArrayList<Car> initDatensaetze() {
ArrayList<Car> Collection = new ArrayList<Car>();
for (int i = 0; i < 10; i++) {
Car c = new Car();
c.setBrand("Automarke " + i);
c.setModel("Modell " + i);
c.setMilage(10 * i);
Collection.add(c);
}
return Collection;
}
ArrayList<Car> car_details = initDatensaetze();
final ListView lv1 = (ListView) findViewById(R.id.cars_listview);
lv1.setAdapter(new CarListBaseAdapter(this, car_details));
Hier mal ein Einblick in di Log Datei
01-20 16:33:30.909: E/AndroidRuntime(1030): FATAL EXCEPTION: main
01-20 16:33:30.909: E/AndroidRuntime(1030): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gpsdriverslog/com.gpsdriverslog.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.os.Looper.loop(Looper.java:137)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.main(ActivityThread.java:5039)
01-20 16:33:30.909: E/AndroidRuntime(1030): at java.lang.reflect.Method.invokeNative(Native Method)
01-20 16:33:30.909: E/AndroidRuntime(1030): at java.lang.reflect.Method.invoke(Method.java:511)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-20 16:33:30.909: E/AndroidRuntime(1030): at dalvik.system.NativeStart.main(Native Method)
01-20 16:33:30.909: E/AndroidRuntime(1030): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ListActivity.onContentChanged(ListActivity.java:243)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.Activity.setContentView(Activity.java:1881)
01-20 16:33:30.909: E/AndroidRuntime(1030): at com.gpsdriverslog.MainActivity.onCreate(MainActivity.java:31)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.Activity.performCreate(Activity.java:5104)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-20 16:33:30.909: E/AndroidRuntime(1030): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-20 16:33:30.909: E/AndroidRuntime(1030): ... 11 more
kann mir vielleicht jemand weiterhelfen?
Ich habe keine Ahnung und zu wenig Java Erfahrung!
Zuletzt bearbeitet: