/*
* Copyright (c) 2014. Marshal Chen.
*/
package com.marshalchen.common.demoofui.dragSortListview;
import java.util.Arrays;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.Intent;
import com.marshalchen.common.demoofui.R;
//import com.mobeta.android.demodslv.R;
public class Launcher extends ListActivity {
//private ArrayAdapter<ActivityInfo> adapter;
private MyAdapter adapter;
private ArrayList<ActivityInfo> mActivities = null;
private String[] mActTitles;
private String[] mActDescs;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.drag_sort_listview_launcher);
try {
PackageInfo pi = getPackageManager().getPackageInfo(
"com.marshalchen.common.demoofui.dragSortListview", PackageManager.GET_ACTIVITIES);
mActivities = new ArrayList<ActivityInfo>(Arrays.asList(pi.activities));
String ourName = getClass().getName();
for (int i = 0; i < mActivities.size(); ++i) {
if (ourName.equals(mActivities.get(i).name)) {
mActivities.remove(i);
break;
}
}
} catch (PackageManager.NameNotFoundException e) {
// Do nothing. Adapter will be empty.
}
mActTitles = getResources().getStringArray(R.array.activity_titles);
mActDescs = getResources().getStringArray(R.array.activity_descs);
//adapter = new ArrayAdapter<ActivityInfo>(this,
// R.layout.drag_sort_listview_launcher_item, R.id.text, mActivities);
adapter = new MyAdapter();
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent();
intent.setClassName(this, mActivities.get(position).name);
startActivity(intent);
}
private class MyAdapter extends ArrayAdapter<ActivityInfo> {
MyAdapter() {
super(Launcher.this, R.layout.drag_sort_listview_launcher_item, R.id.activity_title, mActivities);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
TextView title = (TextView) v.findViewById(R.id.activity_title);
TextView desc = (TextView) v.findViewById(R.id.activity_desc);
title.setText(mActTitles[position]);
desc.setText(mActDescs[position]);
return v;
}
}
}