为什么我换了一个App的帐号(见图二),却老是弹出验证apple id像图一那样子的标签?

android开发(46)
先看效果图
这个是我们自己的apk点击之后的效果
下边是布局文件
activity_main.xml主布局文件
&LinearLayout xmlns:android=&/apk/res/android&
& & xmlns:tools=&/tools&
& & android:layout_width=&match_parent&
& & android:layout_height=&match_parent&
& & tools:context=&.MainActivity&
& & android:orientation=&vertical&&
&TextView&
& &android:layout_width=&match_parent&
& &android:layout_height=&wrap_content&
& &android:gravity=&center&
& &android:layout_marginTop=&15dp&
& &android:text=&@string/app_name&/&
& & &GridView&
& & & & android:id=&@+id/allapps&
& & & & android:layout_width=&match_parent&
& & & & android:layout_height=&wrap_content&/&
&/LinearLayout&
我用一个GridView 做容器
下边是单个item布局文件
application_layout.xml
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
& & android:layout_width=&match_parent&
& & android:layout_height=&match_parent&
& & android:orientation=&vertical&
& & android:gravity=&center&&
&ImageView&
& &android:id=&@+id/app_icon&
& &android:layout_width=&wrap_content&
& &android:layout_height=&wrap_content&
& &android:layout_marginTop=&15dp&/&
& &android:id=&@+id/app_title&
& &android:layout_width=&wrap_content&
& &android:layout_height=&wrap_content&
& &android:textSize=&12sp&
& &android:gravity=&center&/&
&/LinearLayout&
下边是AndroidManifest.xml,这个里边有几个和普通apk不同的地方
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
& & package=&com.wind.lancherdemo&
& & android:versionCode=&1&
& & android:versionName=&1.0& &
& & &uses-sdk
& & & & android:minSdkVersion=&17&
& & & & android:targetSdkVersion=&17& /&
& & &application
& & & & android:allowBackup=&true&
& & & & android:icon=&@drawable/ic_launcher&
& & & & android:label=&@string/app_name& &
& & & & &activity
& & & & & & android:name=&com.wind.lancherdemo.MainActivity&
& & & & & & android:theme=&@android:style/Theme.Dialog& & & & & & & & & &&!--这个更改app theme为Dialog--&
& & & & & & android:label=&@string/app_name& &
& & & & & & &intent-filter&
& & & & & & & & &action android:name=&android.intent.action.MAIN& /&
& & & & & & & & &category android:name=&android.intent.category.LAUNCHER& /&
& & & & & & &/intent-filter&
& & & & &/activity&
& & &/application&
&/manifest&
下边是源文件
package com.wind.
import java.util.ArrayL
import java.util.C
import java.util.L
import android.app.A
import ponentN
import android.content.C
import android.content.I
import android.content.pm.PackageM
import android.content.pm.ResolveI
import android.os.B
import android.view.LayoutI
import android.view.V
import android.view.ViewG
import android.view.W
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.BaseA
import android.widget.GridV
import android.widget.ImageV
import android.widget.TextV
public class MainActivity extends Activity implements OnItemClickListener{
private GridView mGridV
private Context mC
private PackageManager mPackageM
private List&ResolveInfo& mAllA
private List&ResolveInfo& mShowApps = new ArrayList&ResolveInfo&();
private static final String[] mShowAppPkgNames = {&com.android.contacts&,&com.android.mms&,&com.android.browser&}; &//这个地方可以添加我们需要过滤的apk包名
& @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
setupViews();
private void setupViews() {
mContext = MainActivity.
mPackageManager = getPackageManager();
mGridView = (GridView)findViewById(R.id.allapps);
bindAllApps();
mGridView.setAdapter(new GridItemAdapter(mContext, mShowApps)); &//这个地方时设置GridView的适配器,不懂的可以去网上搜下具体教程
mGridView.setNumColumns(3);
mGridView.setOnItemClickListener(this);
private void bindAllApps() {
Intent mainIntent = new Intent(Intent.ACTION_MAIN,null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);//这个地方就是我们根据我们安装的所有apk过滤出我们想要的apk,这样做的目的是你删除了某个我们需要的应用,我们的程序依然正常
for (ResolveInfo app_item : mAllApps) {
String pkg = app_item.activityInfo.packageN
for (int i = 0; i & mShowAppPkgNames. i++) {
if(mShowAppPkgNames[i].equals(pkg)) {
mShowApps.add(app_item);
Collections.sort(mShowApps, new ResolveInfo.DisplayNameComparator(mPackageManager));
//这个是根据我们的点击进入到具体的应用
public void onItemClick(AdapterView&?& parent, View view, int position, long id) {
ResolveInfo res = mShowApps.get(position);
String pkg = res.activityInfo.packageN
String cls = res.activityInfo.
ComponentName component = new ComponentName(pkg, cls);
Intent i = new Intent();
i.setComponent(component);
startActivity(i);
//这个地方是我们重写我们的GridView适配器
private class GridItemAdapter extends BaseAdapter{
private List&ResolveInfo& resI
public GridItemAdapter(Context context, List&ResolveInfo& resInfo) {
this.context =
this.resInfo = resI
public int getCount() {
// TODO Auto-generated method stub
return resInfo.size();
public Object getItem(int position) {
// TODO Auto-generated method stub
return resInfo.get(position);
public long getItemId(int position) {
// TODO Auto-generated method stub
//这个地方用ViewHolder的目的是不用我们每次重构我们的convertView 及寻找ImageView和TextView,可以提高app运行速度
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder =
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.application_layout, null);
holder = new ViewHolder();
holder.mAppIcon = (ImageView)convertView.findViewById(R.id.app_icon);
holder.mAppTitle = (TextView)convertView.findViewById(R.id.app_title);
convertView.setTag(holder);
holder = (ViewHolder)convertView.getTag();
ResolveInfo res = resInfo.get(position);
holder.mAppIcon.setImageDrawable(res.loadIcon(mPackageManager));
holder.mAppTitle.setText(res.loadLabel(mPackageManager).toString());
return convertV
private class ViewHolder {
ImageView mAppI
TextView mAppT
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:63497次
积分:1369
积分:1369
排名:千里之外
原创:52篇
转载:15篇
(3)(1)(2)(3)(1)(13)(4)(1)(4)(7)(3)(2)(8)(1)(5)(3)(25)(14)(2)(5)(2)

我要回帖

更多关于 光驱老是自动弹出 的文章

 

随机推荐