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

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);
 
        }

}
 

效果图:

  

  

下载地址

原文地址:https://www.cnblogs.com/vus520/p/2681378.html