All pastes #1359695 Raw Edit

AdapterTest.java

public java v1 · immutable
#1359695 ·published 2009-03-13 07:09 UTC
rendered paste body
package 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();			}		});	}}