自定义对话框组件(一)

2014-11-24 10:51:05 · 作者: · 浏览: 5
很简单的一个的东西,写了两天,才搞出来,真心汗。想想整整7个月没看一眼代码。突然回来工作,很不适应,脑子里也不知道该怎么下手了。
[java]
package com.closedialog;
import java.util.ArrayList;
import java.util.List;
import android.app.Dialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.testdlg.R;
public class DialogFactory {
private Context context;
private Dialog dialog;
private boolean isFold = false;
public DialogFactory(Context context) {
this.context = context;
}
/**
* 查询所有支持分享的引用
*
* @param context
* @return
*/
private List getShareApps(Context context) {
List mApps = new ArrayList();
Intent intent = new Intent(Intent.ACTION_SEND, null);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("text/plain");
PackageManager pManager = context.getPackageManager();
mApps = pManager.queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
return mApps;
}
/**
* 得到应用列表
*
* @return
*/
private List getShareAppList() {
List shareAppInfos = new ArrayList();
PackageManager packageManager = context.getPackageManager();
List resolveInfos = getShareApps(context);
if (null == resolveInfos) {
return null;
} else {
for (ResolveInfo resolveInfo : resolveInfos) {
AppInfo appInfo = new AppInfo();
appInfo.setAppPkgName(resolveInfo.activityInfo.packageName);
appInfo.setAppLauncherClassName(resolveInfo.activityInfo.name);
appInfo.setAppName(resolveInfo.loadLabel(packageManager).toString());
appInfo.setAppIcon(resolveInfo.loadIcon(packageManager));
shareAppInfos.add(appInfo);
Log.v("TAG", "appInfo.getAppName()" + appInfo.getAppName());
}
}
return shareAppInfos;
}
/**
* 分享对话框
* @param downUrl
* 下载地址
*
*/
public void showDialogShare(final String downUrl) {
dialog = new Dialog(context, R.style.dialog);
dialog.setContentView(R.layout.dialog_factory_share);
ListView listView = (ListView) dialog.findViewById(R.id.list_share);
final ShareCustomAdapter adapter = new ShareCustomAdapter(getShareAppList(), context);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView< > parent, View view, int position, long id) {