标签:
其实是54行@Override上面少了一个}。
完整代码如下:
1 package com.bignerdranch.android.nerdlauncher; 2 3 import java.util.Collections; 4 import java.util.Comparator; 5 import java.util.List; 6 7 import android.content.Intent; 8 import android.content.pm.ActivityInfo; 9 import android.content.pm.PackageManager; 10 import android.content.pm.ResolveInfo; 11 import android.os.Bundle; 12 import android.support.v4.app.ListFragment; 13 import android.util.Log; 14 import android.view.View; 15 import android.view.ViewGroup; 16 import android.widget.ArrayAdapter; 17 import android.widget.ListView; 18 import android.widget.TextView; 19 20 public class NerdLauncherFragment extends ListFragment { 21 private static final String TAG="NerdLauncherFragment"; 22 @Override 23 public void onCreate(Bundle savedInstanceState) { 24 super.onCreate(savedInstanceState); 25 setRetainInstance(true); 26 27 Intent startupIntent = new Intent(Intent.ACTION_MAIN); 28 startupIntent.addCategory(Intent.CATEGORY_LAUNCHER); 29 30 final PackageManager pm = getActivity().getPackageManager(); 31 List<ResolveInfo> activities = pm.queryIntentActivities(startupIntent, 0); 32 33 Log.i(TAG, "I‘ve found " + activities.size() + " activities."); 34 35 Collections.sort(activities, new Comparator<ResolveInfo>() { 36 public int compare(ResolveInfo a, ResolveInfo b) { 37 return String.CASE_INSENSITIVE_ORDER.compare( 38 a.loadLabel(pm).toString(), 39 b.loadLabel(pm).toString()); 40 } 41 }); 42 43 setListAdapter(new ArrayAdapter<ResolveInfo>(getActivity(), android.R.layout.simple_list_item_1, 44 activities) { 45 public View getView(int pos, View convertView, ViewGroup parent) { 46 View v = super.getView(pos, convertView, parent); 47 TextView tv = (TextView)v; 48 ResolveInfo ri = getItem(pos); 49 tv.setText(ri.loadLabel(pm)); 50 return v; 51 } 52 }); 53 54 @Override 55 public void onListItemClick(ListView l, View v, int position, long id) { 56 ResolveInfo resolveInfo = (ResolveInfo)l.getAdapter().getItem(position); 57 ActivityInfo activityInfo = resolveInfo.activityInfo; 58 59 if (activityInfo == null) return; 60 61 Intent i = new Intent(Intent.ACTION_MAIN); 62 i.setClassName(activityInfo.applicationInfo.packageName, activityInfo.name); 63 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 64 65 startActivity(i); 66 } 67 } 68 69 }
标签:
原文地址:http://www.cnblogs.com/smallriver/p/4769920.html