rendered paste bodypackage nu.sawicki.adapter;import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;public class AdapterTest extends Activity { private class NestedAdapter extends ArrayAdapter<Row> { Context context; public NestedAdapter(Activity context, ArrayList<Row> data) { super(context, R.layout.main_row, R.id.MainRowHeader, data); this.context = context; } public View getView(int position, View convertView, ViewGroup parent) { final View returnView = super .getView(position, convertView, parent); Row row = super.getItem(position); final ArrayList<String> subRows = row.subRows; final ArrayAdapter<String> rowAdapter = new ArrayAdapter<String>( context, R.layout.sub_row, subRows); ((ListView) returnView.findViewById(R.id.SubListView)) .setAdapter(rowAdapter); ((TextView) returnView.findViewById(R.id.MainRowHeader)) .setText(row.title); ((Button) returnView.findViewById(R.id.Button01)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { subRows.add("Podwiersz nr: " + subRows.size()); rowAdapter.notifyDataSetChanged(); } }); return returnView; } } private class Row { public ArrayList<String> subRows; public String title; public ArrayAdapter<String> subRowsAdapter; public String toString() { return title; } public Row(String s) { title = s; subRows = new ArrayList<String>(); } } private ArrayList<Row> rows; private ArrayAdapter<Row> mainAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); rows = new ArrayList<Row>(); mainAdapter = new NestedAdapter(this, rows); Button button = (Button) findViewById(R.id.Button01); final ListView listView = (ListView) findViewById(R.id.MainListView); listView.setAdapter(mainAdapter); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { rows.add(new Row("główny wiersz nr: " + rows.size())); mainAdapter.notifyDataSetChanged(); } }); }}