CustomAdapter Problem

  • 2 Antworten
  • Letztes Antwortdatum
F

flxmd

Neues Mitglied
0
Hallo erstmal zusammen!

Hab vor kurzem angefangen mich mit Android zu beschäftigen. Arbeite gerade verschiedene Themen aus einem Buch durch und bin gerade bei CustomAdapter für Listviews.

Mein Problem ist, dass wenn ich die App starte er das ganze auf's Gerät überträgt und dann kommt "Leider wurde das Programm beendet. Im ErrorLog stehen keine Fehler. Ich bin ein bisschen ratlos. Vielleicht könnt ihr mal über den Quelltext schauen.

Code in MainActivity.java
Code:
Menue menue_data[] = new Menue[] {
                new Menue(R.drawable.note_icon, "Notiz 1"),
                new Menue(R.drawable.recipe_icon, "Rezept 1"), };

        MenueAdapter adapter = new MenueAdapter(this,
                R.layout.mainview_menue_item_row, menue_data);

        listView1 = (ListView) findViewById(R.id.listView1);

        listView1.setAdapter(adapter);
        listView1.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Object listItem = listView1.getItemAtPosition(position);
                String input = ((Menue) listItem).title;
                Toast.makeText(getApplicationContext(), input,
                        Toast.LENGTH_SHORT).show();
            }
        });

Code MenueAdapter.java
Code:
package com.example.noteboxes;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MenueAdapter extends ArrayAdapter<Menue> {
    Context context;

    int layoutResourceId;
    Menue data[] = null;

    public MenueAdapter(Context context, int layoutResourceId, Menue[] data) {
        super(context, layoutResourceId, data);
        this.context = context;
        this.data = data;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        MenueHolder holder = null;

        if (row == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new MenueHolder();
            holder.imgIcon = (ImageView) row.findViewById(R.id.menueicon);
            holder.txtTitle = (TextView) row.findViewById(R.id.txtTitle);

            row.setTag(holder);
        } else {
            holder = (MenueHolder) row.getTag();
        }

        Menue menue = data[position];
        holder.txtTitle.setText(menue.title);
        holder.imgIcon.setImageResource(menue.Icon);
        return row;
    }

    static class MenueHolder {
        ImageView imgIcon;
        TextView txtTitle;
    }

}

Code Menue.java
Code:
package com.example.noteboxes;

public class Menue {
    public int Icon;
    public String title;

    public Menue() {
        super();
    }

    public Menue(int icon, String title) {
        super();
        Icon = icon;
        this.title = title;
    }

    @Override
    public String toString() {
        return this.title;
    }
}

Code mainview_menue_item_row.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginBottom="0.0dp"
        android:layout_marginTop="0.0dp">

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dp"
            android:layout_marginRight="2dp"
            android:paddingBottom="0.0dp"
            android:paddingTop="0.0dp" >

            <ImageView
                android:id="@+id/menueicon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:paddingBottom="0.0dp"
                android:paddingTop="0.0dp" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/txtTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:paddingRight="10dip"
                android:textColor="#263fff"
                android:textSize="12dp"
                android:textStyle="bold" />
        </TableRow>
    </TableLayout>

</LinearLayout>
 
Probier mal den debugging modus und breakpoints, dann kannst du deinen fehler lokalisieren.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
im errorlog steht ganz sicher ein entsprechender fehler

du musst nur die logcat view in eclipse aktivieren
 
Zurück
Oben Unten