/*
* Copyright (c) 2014. Marshal Chen.
*/
package com.marshalchen.common.demoofui.dragSortListview;
import java.util.List;
import java.util.ArrayList;
import com.marshalchen.common.demoofui.R;
import com.marshalchen.common.uimodule.dragSortListView.DragSortListView;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.view.View;
import android.view.ViewGroup;
public class ArbItemSizeDSLV extends ListActivity {
private JazzAdapter adapter;
private ArrayList<JazzArtist> mArtists;
private String[] mArtistNames;
private String[] mArtistAlbums;
private DragSortListView.DropListener onDrop =
new DragSortListView.DropListener() {
@Override
public void drop(int from, int to) {
JazzArtist item = adapter.getItem(from);
adapter.remove(item);
adapter.insert(item, to);
}
};
private DragSortListView.RemoveListener onRemove =
new DragSortListView.RemoveListener() {
@Override
public void remove(int which) {
adapter.remove(adapter.getItem(which));
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.drag_sort_listview_hetero_main);
DragSortListView lv = (DragSortListView) getListView();
lv.setDropListener(onDrop);
lv.setRemoveListener(onRemove);
mArtistNames = getResources().getStringArray(R.array.jazz_artist_names);
mArtistAlbums = getResources().getStringArray(R.array.jazz_artist_albums);
mArtists = new ArrayList<JazzArtist>();
JazzArtist ja;
for (int i = 0; i < mArtistNames.length; ++i) {
ja = new JazzArtist();
ja.name = mArtistNames[i];
if (i < mArtistAlbums.length) {
ja.albums = mArtistAlbums[i];
} else {
ja.albums = "No albums listed";
}
mArtists.add(ja);
}
adapter = new JazzAdapter(mArtists);
setListAdapter(adapter);
}
private class JazzArtist {
public String name;
public String albums;
@Override
public String toString() {
return name;
}
}
private class ViewHolder {
public TextView albumsView;
}
private class JazzAdapter extends ArrayAdapter<JazzArtist> {
public JazzAdapter(List<JazzArtist> artists) {
super(ArbItemSizeDSLV.this, R.layout.drag_sort_listview_jazz_artist_list_item,
R.id.artist_name_textview, artists);
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
if (v != convertView && v != null) {
ViewHolder holder = new ViewHolder();
TextView tv = (TextView) v.findViewById(R.id.artist_albums_textview);
holder.albumsView = tv;
v.setTag(holder);
}
ViewHolder holder = (ViewHolder) v.getTag();
String albums = getItem(position).albums;
holder.albumsView.setText(albums);
return v;
}
}
}