ApiDemospublic class ApiDemos extends android.app.ListActivity
Fields Summary |
---|
private static final Comparator | sDisplayNameComparator |
Methods Summary |
---|
protected android.content.Intent | activityIntent(java.lang.String pkg, java.lang.String componentName)
Intent result = new Intent();
result.setClassName(pkg, componentName);
return result;
| protected void | addItem(java.util.List data, java.lang.String name, android.content.Intent intent)
Map<String, Object> temp = new HashMap<String, Object>();
temp.put("title", name);
temp.put("intent", intent);
data.add(temp);
| protected android.content.Intent | browseIntent(java.lang.String path)
Intent result = new Intent();
result.setClass(this, ApiDemos.class);
result.putExtra("com.google.android.samples.Path", path);
return result;
| protected java.util.List | getData(java.lang.String prefix)
List<Map> myData = new ArrayList<Map>();
Intent mainIntent = new Intent(Intent.MAIN_ACTION, null);
mainIntent.addCategory(Intent.SAMPLE_CODE_CATEGORY);
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
if (null == list)
return myData;
String[] prefixPath;
if (prefix.equals("")) {
prefixPath = null;
} else {
prefixPath = prefix.split("/");
}
int len = list.size();
Map<String, Boolean> entries = new HashMap<String, Boolean>();
for (int i = 0; i < len; i++) {
ResolveInfo info = list.get(i);
CharSequence labelSeq = pm.getResolveLabel(info);
String label = labelSeq != null
? labelSeq.toString()
: info.activityInfo.className;
if (prefix.length() == 0 || label.startsWith(prefix)) {
String[] labelPath = label.split("/");
String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
addItem(myData, nextLabel, activityIntent(
info.activityInfo.applicationInfo.packageName,
info.activityInfo.className));
} else {
if (entries.get(nextLabel) == null) {
addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
entries.put(nextLabel, true);
}
}
}
}
Collections.sort(myData, sDisplayNameComparator);
return myData;
| public void | onCreate(android.os.Bundle icicle)
super.onCreate(icicle);
Intent intent = getIntent();
String path = (String)intent.getExtra("com.google.android.samples.Path");
if (path == null) {
path = "";
}
setListAdapter(new SimpleAdapter(this, getData(path),
android.R.layout.simple_list_item_1, new String[] { "title" },
new int[] { android.R.id.text1 }));
| protected void | onListItemClick(android.widget.ListView l, android.view.View v, int position, long id)
Map map = (Map) l.obtainItem(position);
Intent intent = (Intent) map.get("intent");
startActivity(intent);
|
|