我正在尝试实现这一点:分享 Facebook
在我的应用程序中,我有一个按钮,当用户单击我的按钮时,我希望出现 AlertDialog,但我发现适配器未设置为 AlerDialog。
我使用这段代码:
shareb = (ImageView) findViewById(R.id.shareb);
shareb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
activities = mContext.getPackageManager().queryIntentActivities(sendIntent, 0);
builder = new AlertDialog.Builder(mContext);
builder.setTitle("Share with...");
final ShareIntentListAdapter adapter = new ShareIntentListAdapter((Activity) mContext, R.layout.basiclistview, activities.toArray());
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
ResolveInfo info = (ResolveInfo) adapter.getItem(which);
if (info.activityInfo.packageName.contains("facebook")) {
postFacebookMessage();
} else {
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setClassName(info.activityInfo.packageName, info.activityInfo.name);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_SUBJECT, "I just read " + knowTitle);
intent.putExtra(Intent.EXTRA_TEXT, knowTitle + "Read the full article via MomsApp by EnfaMama A+ at http://meadjohnsonasia.com.my/mobileapp");
((Activity) mContext).startActivity(intent);
}
}
});
builder.create().show();
}
});
然后我使用这个作为适配器:
public class ShareIntentListAdapter extends ArrayAdapter < Object > {
Activity context;
private final Object[] items;
int layoutId;
public ShareIntentListAdapter(Activity context, int layoutId, Object[] items) {
super(context, layoutId, items);
this.context = context;
this.items = items;
this.layoutId = layoutId;
}
public View getView(int pos, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View row = inflater.inflate(layoutId, null);
TextView label = (TextView) row.findViewById(R.id.text1);
label.setText(((ResolveInfo) items[pos]).activityInfo.applicationInfo.loadLabel(context.getPackageManager()).toString());
ImageView image = (ImageView) row.findViewById(R.id.logo);
image.setImageDrawable(((ResolveInfo) items[pos]).activityInfo.applicationInfo.loadIcon(context.getPackageManager()));
System.out.println(layoutId);
return (row);
}
}
我发现getView函数没有运行!因为我设置了 System.out.println(),它没有打印。
当我运行此代码时,与...共享它似乎没有任何内容!
我怎样才能解决这个问题?