Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.test.customlistview;
- import java.util.LinkedList;
- import java.util.List;
- import android.app.Activity;
- import android.content.Context;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ArrayAdapter;
- import android.widget.GridView;
- import android.widget.ListView;
- import android.widget.TextView;
- public class CustomListViewActivity extends Activity {
- private class StringAdapter extends ArrayAdapter<String> {
- public StringAdapter(Context context) {
- super(context, R.layout.simple_list_row, R.id.TextView);
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- if (convertView == null) {
- convertView = super.getView(position, convertView, parent);
- }
- String item = getItem(position);
- ((TextView) convertView.findViewById(R.id.TextView)).setText(item);
- return convertView;
- }
- public void add(List<String> items) {
- int size = items.size();
- for (int i = 0; i < size; i++) {
- add(items.get(i));
- }
- }
- }
- private class AlbumsGridViewAdapter extends ArrayAdapter<GridView> {
- public AlbumsGridViewAdapter(Context context, int rowLayout) {
- super(context, rowLayout, R.id.TextView);
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- return getItem(0).getAdapter().getView(position, convertView, parent);
- }
- }
- private ListView listView;
- private SectionAdapter adapter;
- private StringAdapter artistsAdapter;
- private StringAdapter albumsAdapter;
- private StringAdapter tracksAdapter;
- private AlbumsGridViewAdapter albumsGridViewAdapter;
- private GridView gridView;
- private void display() {
- artistsAdapter.clear();
- albumsAdapter.clear();
- tracksAdapter.clear();
- adapter.notifyDataSetChanged();
- List<String> artists = new LinkedList<String>();
- artists.add("String Item 1.1");
- artists.add("String Item 1.2");
- artists.add("String Item 1.3");
- artists.add("String Item 1.4");
- List<String> albums = new LinkedList<String>();
- albums.add("GridView Item 1");
- albums.add("GridView Item 2");
- albums.add("GridView Item 3");
- albums.add("GridView Item 4");
- List<String> tracks = new LinkedList<String>();
- tracks.add("String Item 2.1");
- tracks.add("String Item 2.2");
- tracks.add("String Item 2.3");
- tracks.add("String Item 2.4");
- artistsAdapter.add(artists);
- albumsAdapter.add(albums);
- tracksAdapter.add(tracks);
- albumsGridViewAdapter.notifyDataSetChanged();
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- adapter = new SectionAdapter(this);
- artistsAdapter = new StringAdapter(this);
- albumsAdapter = new StringAdapter(this);
- tracksAdapter = new StringAdapter(this);
- albumsGridViewAdapter = new AlbumsGridViewAdapter(this, R.layout.grid_list_row);
- LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View view = inflater.inflate(R.layout.grid_list_row, null);
- gridView = (GridView) view.findViewById(R.id.GridView);
- gridView.setAdapter(albumsAdapter);
- albumsGridViewAdapter.add(gridView);
- adapter.addSection("Artists", artistsAdapter);
- adapter.addSection("Albums", albumsGridViewAdapter);
- adapter.addSection("Tracks", tracksAdapter);
- listView = (ListView) findViewById(R.id.ListView);
- listView.setAdapter(adapter);
- display();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement