获取手机安装的全部应用的示例教程

android用sharepreference保存输入框中的内容

http://www.eoeandroid.com/thread-199222-1-1.html

Android之ScrollView嵌套ListView

http://www.eoeandroid.com/thread-198859-1-1.html

android根据View的不同状态更换不同的背景

http://www.eoeandroid.com/thread-198029-1-1.html

package com.isoftstone.apk_demo;     import android.app.Activity;   import android.app.ProgressDialog;   import android.content.Intent;   import android.os.Bundle;   import android.view.View;   import android.widget.Button;     public class APK_DemoActivity extends Activity implements android.view.View.OnClickListener{         /** Called when the activity is first created. */             public Intent mIntent;          static ProgressDialog pd;         @Override         public void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);           setContentView(R.layout.main);          Button button=(Button)findViewById(R.id.button1);           button.setOnClickListener(this);                  }          @Override             public void onClick(View v) {                   // TODO Auto-generated method stub                     Intent intent=new Intent(this,main.class);                                     Dialog();                   startActivity(intent);                           }                         public void Dialog(){                                                                 pd = new ProgressDialog(APK_DemoActivity.this);              pd.setMessage("亲! 正在扫描中哦....");                      pd.show();                }   }   
package com.isoftstone.apk_demo;       import java.util.ArrayList;   import java.util.HashMap;   import java.util.List;   import android.app.Activity;   import android.app.ProgressDialog;   import android.content.Context;   import android.content.Intent;   import android.content.pm.ResolveInfo;   import android.os.Bundle;   import android.view.View;   import android.widget.AdapterView;   import android.widget.Button;   import android.widget.ListView;   import android.widget.TextView;       public class main extends Activity implements  android.view.View.OnClickListener{         /** Called when the activity is first created. */             public Intent mIntent;           private ProgressDialog pd;           int i=0;             public List<ResolveInfo> installApps = null;// 本机已经安装程序列表           private ListView lv_content;// 内容显示区域           public static final int installWhat = 1;// 安装程序列表 
public static final int appPermissionWhat = 5;// 某个程序的权限页面处理 Context context; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main0);
Button button
=(Button)findViewById(R.id.button1); button.setOnClickListener(this); try { handleInstall(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 处理本机安装程序 * * @throws Exception */ private void handleInstall() throws Exception { // 1.设置操作按钮可见(扫描已安装程序) // 3.得到本机安装应用程序 if (installApps == null) { mIntent = new Intent(Intent.ACTION_MAIN, null); mIntent.addCategory(Intent.CATEGORY_LAUNCHER); installApps = getPackageManager().queryIntentActivities(mIntent, 0); } List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();// 将本机安装程序收集 for (ResolveInfo info : installApps) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("name", info.loadLabel(this.getPackageManager()).toString()); map.put("packageName", info.activityInfo.packageName); map.put("img", info.loadIcon(this.getPackageManager())); list.add(map); } setTitle("共安装" + installApps.size() + "个程序");// 设置标题 // 3.将程序显示到页面上 lv_content = (ListView) this.findViewById(R.id.listView1); SearchAdapter adapter = new SearchAdapter(this, list, R.layout.list_content_main, new String[] { "name", "packageName", "img" }, new int[] { R.id.activityInfo_name, R.id.activityInfo_packageName, R.id.activityInfo_img });// 自定义适配器 lv_content.setAdapter(adapter); } @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); APK_DemoActivity.pd.cancel(); } }
package com.isoftstone.apk_demo;     import java.util.HashMap;   import java.util.List;   import java.util.Map;  import android.content.Context;   import android.graphics.Bitmap;   import android.graphics.Canvas;   import android.graphics.Color;   import android.graphics.PixelFormat;   import android.graphics.drawable.Drawable;   import android.view.LayoutInflater;   import android.view.View;   import android.view.ViewGroup;   import android.widget.CheckBox;   import android.widget.Checkable;   import android.widget.ImageView;   import android.widget.SimpleAdapter;   import android.widget.TextView;     /**   * 自定义Adapter   *   * @author machao   * @mail zeusmc.163.com   *   */     public class SearchAdapter extends SimpleAdapter {             private Map<Integer, View> viewMap = new HashMap<Integer, View>();             private int[] mTo;           private String[] mFrom;           private ViewBinder mViewBinder;          private List<? extends Map<String, ?>> mData;          private int mResource;          private LayoutInflater mInflater;             public SearchAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to) {                     super(context, data, resource, from, to);                     mData = data;                   mResource = resource;                   mFrom = from;                   mTo = to;                     mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);           }             public View getView(int position, View convertView, ViewGroup parent) {                     return createViewFromResource(position, convertView, parent, mResource);           }             private View createViewFromResource(int position, View convertView,ViewGroup parent, int resource) {                     View rowView = this.viewMap.get(position);                     if (rowView == null) {                             rowView = mInflater.inflate(resource, null);                             final int[] to = mTo;                           final int count = to.length;                           final View[] holder = new View[count];                             for (int i = 0; i < count; i++) {                                     holder[i] = rowView.findViewById(to[i]);                           }                             rowView.setTag(holder);                           bindView(position, rowView);                           viewMap.put(position, rowView);                     }                   return rowView;           }             @SuppressWarnings("unchecked")             private void bindView(int position, View view) {                     final Map dataSet = mData.get(position);                   if (dataSet == null) {                             return;                     }                     final ViewBinder binder = mViewBinder;                   final View[] holder = (View[]) view.getTag();                   final String[] from = mFrom;                   final int[] to = mTo;                   final int count = to.length;                       for (int i = 0; i < count; i++) {                             final View v = holder[i];                             if (v != null) {                                     final Object data = dataSet.get(from[i]);                                     String urlText = null;                                     if (data == null) {                                             urlText = "";                                     } else {                                             urlText = data.toString();                                     }                                  boolean bound = false;                                     if (binder != null) {                                             bound = binder.setViewValue(v, data, urlText);                                     }                                  if (!bound) {                                             if (v instanceof CheckBox) {                                                     ((CheckBox) v).setText(data.toString());                                             } else if (v instanceof Checkable) {                                                     if (data instanceof Boolean) {                                                             ((Checkable) v).setChecked((Boolean) data);                                                   } else {                                                             throw new IllegalStateException(v.getClass()                                                                             .getName()                                                                             + " should be bound to a Boolean, not a "                                                                             + data.getClass());                                                  }                                             } else if (v instanceof TextView) {                                                     setViewText((TextView) v, urlText);                                             } else if (v instanceof CheckBox) {                                             } else if (v instanceof ImageView) {                                                     if (data instanceof Integer) {                                                             setViewImage((ImageView) v, (Integer) data);                                                   }                                                     if (data instanceof Drawable) {                                                          setViewImage((ImageView) v, (Drawable) data);                                                     } else {                                                           if (urlText != null && data != null) {                                                                     setViewImage((ImageView) v, urlText);                                                          } else {                                                                                                                                       TextView tv = ((TextView) view .findViewById(R.id.activityInfo_name));                                                                     tv.setTextColor(Color.RED);                                                                  tv.setTextSize(18);                                                                  view.setClickable(false);                                                                   view.setFocusable(false);                                                                   view.setFocusableInTouchMode(false);                                                             }                                                     }                                             } else {                                                     throw new IllegalStateException(                                                                     v.getClass().getName()                                                                                     + " is not a "                                                                                     + " view that can be bounds by this SimpleAdapter");                                             }                                  }                           }                  }           }            public void setViewImage(ImageView v, int value) {                  v.setImageResource(value);             }            public void setViewImage(final ImageView v, Drawable drawable) {                     Bitmap bitmap = Bitmap .createBitmap(                                                     drawable.getIntrinsicWidth(),                                                     drawable.getIntrinsicHeight(),                                                     drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888     : Bitmap.Config.RGB_565);                     Canvas canvas = new Canvas(bitmap);                  drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight());                     drawable.draw(canvas);                  ((ImageView) v).setImageBitmap(bitmap);             }    }   

效果图:

  

  

下载地址

 

你可能感兴趣的:(移动开发,Android开发,手机应用)