Frage

In der App -IM -Entwicklung habe ich eine Liste von Nachrichten mit Titel Datum usw. erhalten, wenn ich auf das Messagetitel klicke, das ich schieben möchte, um diesen Eintrag zu erweitern und die Details anzuzeigen, und einige neue Schaltflächen wie "Antwort", "Löschen" und "Forward". .

wie:
- Botschaft
- Nachricht (angeklickte Nachricht)
Details Schaltflächen löschen, weiterleiten, antworten
Text
- Botschaft
- Botschaft

Hier ist, was ich bisher getan habe:

Zuerst meine Modellklasse für die Nachrichten:

public class MyMessage {

private String from;
private String subject;
private String date;
private String message;

public MyMessage(String f, String s, String d, String m){
    from= f;
    subject= s;
    date = d;
    message= m;
}

public String getFrom() {
    return from;
}

public String getSubject() {
    return subject;
}

public String getDate() {
    return date;
}

public String getMessage() {
    return message;
}

}

Mein benutzerdefinierter Adapter:

public class NewAdapter extends BaseExpandableListAdapter {

public ArrayList<MyMessage> mMessage;
public LayoutInflater minflater;
 public Activity activity;

public NewAdapter(ArrayList<MyMessage> message){
    mMessage = message;
}

 public void setInflater(LayoutInflater mInflater, Activity act) {
      this.minflater = mInflater;
      activity = act;
     }

@Override
public Object getChild(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {

    TextView text = null;
    // TODO Auto-generated method stub
    if (convertView == null) {
           convertView = minflater.inflate(R.layout.message_details, null);
          }
    text = (TextView) convertView.findViewById(R.id.tv_message_text);
    text.setText(mMessage.get(childPosition).getMessage());
    return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public Object getGroup(int groupPosition) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public int getGroupCount() {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public long getGroupId(int groupPosition) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
    TextView from= null;
    TextView date = null;
    TextView subject= null;
    // TODO Auto-generated method stub

    if(convertView == null){
        convertView = minflater.inflate(R.layout.message_head, null);
    }
    from= (TextView) convertView.findViewById(R.id.tv_from);
    date = (TextView) convertView.findViewById(R.id.tv_date);
    subject= (TextView) convertView.findViewById(R.id.tv_subject);

    from.setText(mMessage.get(groupPosition).getfrom());
    date.setText(mMessage.get(groupPosition).getDate());
    subject.setText(mMessage.get(groupPosition).getSubject());


    return convertView;
}

@Override
public boolean hasStableIds() {
    // TODO Auto-generated method stub
    return false;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return false;
}

}

Meine Hauptklasse:

public class Test extends ExpandableListActivity{

public ArrayList<MyMessage> message;
public ExpandableListView eListView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    eListView = getExpandableListView();

    message = createMessages();
    NewAdapter nAdapter = new NewAdapter(message);
    nAdapter
    .setInflater(
      (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE),
      this);
    getExpandableListView().setAdapter(nAdapter);

}

private ArrayList<MyMessage> createMessages() {

    ArrayList<MyMessage> m = new ArrayList<MyMessage>();
    MyMessage test1 = new MyMessage("test1", "testbetreff", "08.11.2013 / 09:44", "gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so");
    MyMessage test2 = new MyMessage("test2", "testbetreff", "08.11.2013 / 09:45", "gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so");
    MyMessage test3 = new MyMessage("test3", "testbetreff", "08.11.2013 / 09:46", "gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so");
    MyMessage test4 = new MyMessage("test4", "testbetreff", "08.11.2013 / 09:47", "gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz viel text und so");

    m.add(test1);
    m.add(test2);
    m.add(test3);
    m.add(test4);

    return m;

}

}

Ich bekomme keine Fehler, aber meine Aktivität ist leer. Ich habe versucht, das zu debuggen, aber es ruft nie GetChildView () oder getGroupView () auf und ich weiß nicht warum.

Ich mache große Fehler mit dem Kostümadapter? vielen Dank im Voraus

War es hilfreich?

Lösung

 @Override
    public int getChildrenCount(int groupPosition) {
        return 1; //just one children?
    }

    @Override
    public Object getGroup(int groupPosition) {
        return mMessage.get(groupPosition);
    }

    @Override
    public int getGroupCount() {
       return mMessage.size();
    }

    @Override
     public long getGroupId(int groupPosition) {
        return groupPosition;
     }

Probieren Sie das aus ... vielleicht wird es nicht angerufen, weil Sie gesagt haben, dass der Adapter überhaupt keine Artikel hat ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top