Respond to clicks on the expanders
This commit is contained in:
parent
03e11a5fee
commit
958ffcc852
@ -30,6 +30,7 @@ import android.util.DisplayMetrics;
|
|||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.BaseAdapter;
|
import android.widget.BaseAdapter;
|
||||||
import android.widget.Filter;
|
import android.widget.Filter;
|
||||||
import android.widget.Filterable;
|
import android.widget.Filterable;
|
||||||
@ -39,7 +40,6 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
public abstract class AbstractAdapter extends BaseAdapter implements Filterable {
|
public abstract class AbstractAdapter extends BaseAdapter implements Filterable {
|
||||||
public static final int ONE_LINE = 0x1;
|
public static final int ONE_LINE = 0x1;
|
||||||
public static final int NO_EXPANDER = 0x2;
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private List<Song> mObjects;
|
private List<Song> mObjects;
|
||||||
@ -49,6 +49,7 @@ public abstract class AbstractAdapter extends BaseAdapter implements Filterable
|
|||||||
private int mPadding;
|
private int mPadding;
|
||||||
private int mDrawFlags;
|
private int mDrawFlags;
|
||||||
private int mFieldCount;
|
private int mFieldCount;
|
||||||
|
private OnClickListener mExpanderListener;
|
||||||
|
|
||||||
public AbstractAdapter(Context context, Song[] allObjects, int drawFlags, int numFields)
|
public AbstractAdapter(Context context, Song[] allObjects, int drawFlags, int numFields)
|
||||||
{
|
{
|
||||||
@ -62,6 +63,11 @@ public abstract class AbstractAdapter extends BaseAdapter implements Filterable
|
|||||||
mPadding = (int)mSize / 2;
|
mPadding = (int)mSize / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setExpanderListener(View.OnClickListener listener)
|
||||||
|
{
|
||||||
|
mExpanderListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasStableIds()
|
public boolean hasStableIds()
|
||||||
{
|
{
|
||||||
@ -84,7 +90,7 @@ public abstract class AbstractAdapter extends BaseAdapter implements Filterable
|
|||||||
|
|
||||||
RelativeLayout.LayoutParams params;
|
RelativeLayout.LayoutParams params;
|
||||||
|
|
||||||
if ((mDrawFlags & NO_EXPANDER) == 0) {
|
if (mExpanderListener != null) {
|
||||||
params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
|
params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
|
||||||
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
|
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
|
||||||
params.addRule(RelativeLayout.CENTER_VERTICAL);
|
params.addRule(RelativeLayout.CENTER_VERTICAL);
|
||||||
@ -93,6 +99,10 @@ public abstract class AbstractAdapter extends BaseAdapter implements Filterable
|
|||||||
button.setImageResource(R.drawable.expander_arrow);
|
button.setImageResource(R.drawable.expander_arrow);
|
||||||
button.setId(3);
|
button.setId(3);
|
||||||
button.setLayoutParams(params);
|
button.setLayoutParams(params);
|
||||||
|
button.setTag(R.id.list, mFieldCount);
|
||||||
|
button.setTag(R.id.song, get(position));
|
||||||
|
button.setOnClickListener(mExpanderListener);
|
||||||
|
|
||||||
view.addView(button);
|
view.addView(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public class SongAdapter extends AbstractAdapter {
|
|||||||
|
|
||||||
public SongAdapter(Context context, Song[] allSongs)
|
public SongAdapter(Context context, Song[] allSongs)
|
||||||
{
|
{
|
||||||
super(ContextApplication.getContext(), sort(allSongs), NO_EXPANDER, 3);
|
super(ContextApplication.getContext(), sort(allSongs), 0, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -63,8 +63,10 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
|
|||||||
|
|
||||||
final Song[] songs = Song.getAllSongMetadata();
|
final Song[] songs = Song.getAllSongMetadata();
|
||||||
mAdapters[0] = new ArtistAdapter(this, songs);
|
mAdapters[0] = new ArtistAdapter(this, songs);
|
||||||
|
mAdapters[0].setExpanderListener(this);
|
||||||
|
|
||||||
ListView artistView = (ListView)findViewById(R.id.artist_list);
|
ListView artistView = (ListView)findViewById(R.id.artist_list);
|
||||||
|
artistView.setOnItemClickListener(this);
|
||||||
artistView.setAdapter(mAdapters[0]);
|
artistView.setAdapter(mAdapters[0]);
|
||||||
|
|
||||||
mTextFilter = (TextView)findViewById(R.id.filter_text);
|
mTextFilter = (TextView)findViewById(R.id.filter_text);
|
||||||
@ -87,11 +89,11 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
|
|||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
mAdapters[1] = new AlbumAdapter(SongSelector.this, songs);
|
mAdapters[1] = new AlbumAdapter(SongSelector.this, songs);
|
||||||
mAdapters[2] = new SongAdapter(SongSelector.this, songs);
|
mAdapters[1].setExpanderListener(SongSelector.this);
|
||||||
|
|
||||||
ListView albumView = (ListView)findViewById(R.id.album_list);
|
ListView albumView = (ListView)findViewById(R.id.album_list);
|
||||||
albumView.setAdapter(mAdapters[1]);
|
albumView.setAdapter(mAdapters[1]);
|
||||||
|
|
||||||
|
mAdapters[2] = new SongAdapter(SongSelector.this, songs);
|
||||||
ListView songView = (ListView)findViewById(R.id.song_list);
|
ListView songView = (ListView)findViewById(R.id.song_list);
|
||||||
songView.setAdapter(mAdapters[2]);
|
songView.setAdapter(mAdapters[2]);
|
||||||
songView.setOnItemClickListener(SongSelector.this);
|
songView.setOnItemClickListener(SongSelector.this);
|
||||||
@ -133,6 +135,12 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
|
|||||||
|
|
||||||
public void onClick(View view)
|
public void onClick(View view)
|
||||||
{
|
{
|
||||||
mTextFilter.setText("");
|
if (view == mTextFilter) {
|
||||||
|
mTextFilter.setText("");
|
||||||
|
} else {
|
||||||
|
Object list = view.getTag(R.id.list);
|
||||||
|
if (list != null)
|
||||||
|
mTabHost.setCurrentTab((Integer)list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user