Advertisement
Guest User

CustomListViewActivity.java

a guest
Oct 5th, 2010
1,656
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.86 KB | None | 0 0
  1. package com.test.customlistview;
  2.  
  3. import java.util.LinkedList;
  4. import java.util.List;
  5.  
  6. import android.app.Activity;
  7. import android.content.Context;
  8. import android.os.Bundle;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.ArrayAdapter;
  13. import android.widget.GridView;
  14. import android.widget.ListView;
  15. import android.widget.TextView;
  16.  
  17. public class CustomListViewActivity extends Activity {
  18.  
  19.    private class StringAdapter extends ArrayAdapter<String> {
  20.  
  21.       public StringAdapter(Context context) {
  22.          super(context, R.layout.simple_list_row, R.id.TextView);
  23.       }
  24.  
  25.       public View getView(int position, View convertView, ViewGroup parent) {
  26.          if (convertView == null) {
  27.             convertView = super.getView(position, convertView, parent);
  28.          }
  29.  
  30.          String item = getItem(position);
  31.  
  32.          ((TextView) convertView.findViewById(R.id.TextView)).setText(item);
  33.  
  34.          return convertView;
  35.       }
  36.  
  37.       public void add(List<String> items) {
  38.          int size = items.size();
  39.  
  40.          for (int i = 0; i < size; i++) {
  41.             add(items.get(i));
  42.          }
  43.       }
  44.      
  45.    }
  46.  
  47.    private class AlbumsGridViewAdapter extends ArrayAdapter<GridView> {
  48.  
  49.       public AlbumsGridViewAdapter(Context context, int rowLayout) {
  50.          super(context, rowLayout, R.id.TextView);
  51.       }
  52.  
  53.       @Override
  54.       public View getView(int position, View convertView, ViewGroup parent) {
  55.          return getItem(0).getAdapter().getView(position, convertView, parent);
  56.       }
  57.  
  58.    }
  59.  
  60.    private ListView listView;
  61.    private SectionAdapter adapter;
  62.  
  63.    private StringAdapter artistsAdapter;
  64.    private StringAdapter albumsAdapter;
  65.    private StringAdapter tracksAdapter;
  66.    
  67.    private AlbumsGridViewAdapter albumsGridViewAdapter;
  68.    
  69.    private GridView gridView;
  70.    
  71.    private void display() {
  72.       artistsAdapter.clear();
  73.       albumsAdapter.clear();
  74.       tracksAdapter.clear();
  75.  
  76.       adapter.notifyDataSetChanged();
  77.  
  78.       List<String> artists = new LinkedList<String>();
  79.       artists.add("String Item 1.1");
  80.       artists.add("String Item 1.2");
  81.       artists.add("String Item 1.3");
  82.       artists.add("String Item 1.4");
  83.  
  84.       List<String> albums = new LinkedList<String>();
  85.       albums.add("GridView Item 1");
  86.       albums.add("GridView Item 2");
  87.       albums.add("GridView Item 3");
  88.       albums.add("GridView Item 4");
  89.  
  90.       List<String> tracks = new LinkedList<String>();
  91.       tracks.add("String Item 2.1");
  92.       tracks.add("String Item 2.2");
  93.       tracks.add("String Item 2.3");
  94.       tracks.add("String Item 2.4");
  95.  
  96.       artistsAdapter.add(artists);
  97.       albumsAdapter.add(albums);
  98.       tracksAdapter.add(tracks);
  99.       albumsGridViewAdapter.notifyDataSetChanged();
  100.    }
  101.  
  102.    @Override
  103.    public void onCreate(Bundle savedInstanceState) {
  104.       super.onCreate(savedInstanceState);
  105.       setContentView(R.layout.main);
  106.  
  107.       adapter = new SectionAdapter(this);
  108.  
  109.       artistsAdapter = new StringAdapter(this);
  110.       albumsAdapter = new StringAdapter(this);
  111.       tracksAdapter = new StringAdapter(this);
  112.      
  113.       albumsGridViewAdapter = new AlbumsGridViewAdapter(this, R.layout.grid_list_row);
  114.      
  115.       LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  116.       View view = inflater.inflate(R.layout.grid_list_row, null);
  117.      
  118.       gridView = (GridView) view.findViewById(R.id.GridView);
  119.       gridView.setAdapter(albumsAdapter);
  120.       albumsGridViewAdapter.add(gridView);
  121.      
  122.       adapter.addSection("Artists", artistsAdapter);
  123.       adapter.addSection("Albums", albumsGridViewAdapter);
  124.       adapter.addSection("Tracks", tracksAdapter);
  125.  
  126.       listView = (ListView) findViewById(R.id.ListView);
  127.       listView.setAdapter(adapter);
  128.  
  129.       display();
  130.    }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement