私はこれを実装しようとしています: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()を設定したのですが、印刷されませんでした。
このコードを実行すると、共有します...コンテンツなしで表示されます!
どうすればこれを修正できますか?