質問

開発中のアプリでは、Titel Datumなどのメッセージのリストを取得しました。MessageTitelをクリックすると、このエントリを拡張して詳細を表示し、「Reply」、「Delete」、「Forward」などの新しいボタンを表示します。 。

お気に入り:
- メッセージ
- メッセージ(クリックされたメッセージ)
詳細ボタンは削除、転送、返信を削除します
文章
- メッセージ
- メッセージ

これが私がこれまでにしたことです:

最初にメッセージのモデルクラス:

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;
}

}

私のカスタムアダプター:

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;
}

}

私のメインクラス:

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;

}

}

エラーはありませんが、アクティビティは空白です。私はこれをデバッグしようとしましたが、getChildView()やgetGroupView()を呼び出すことはありませんでしたが、その理由はわかりません。

コスタムアダプターで大きな間違いをしているのですか?前もって感謝します

役に立ちましたか?

解決

 @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;
     }

これを試してみてください...アダプターにはアイテムがまったくないと言ったので、それは呼ばれていないかもしれません...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top