वहाँ जानकारी इस तरह का उपयोग करने की प्रत्यक्ष विधि नहीं है ....
चरण 1: अपने कोड तुम सब एक एडाप्टर जो सूची के अपने कस्टम दृश्य में शामिल होंगे पर साझा करने के लिए की घोषणा करने की जरूरत के पहले अंदर ...
//sharing implementation
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
// what type of data needs to be send by sharing
sharingIntent.setType("text/plain");
// package names
PackageManager pm = getPackageManager();
// list package
List<ResolveInfo> activityList = pm.queryIntentActivities(sharingIntent, 0);
objShareIntentListAdapter = new ShareIntentListAdapter(CouponView.this,activityList.toArray());
// Create alert dialog box
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Share via");
builder.setAdapter(objShareIntentListAdapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
ResolveInfo info = (ResolveInfo) objShareIntentListAdapter.getItem(item);
// if email shared by user
if(info.activityInfo.packageName.contains("Email")
|| info.activityInfo.packageName.contains("Gmail")
|| info.activityInfo.packageName.contains("Y! Mail")) {
PullShare.makeRequestEmail(COUPONID,CouponType);
}
// start respective activity
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setClassName(info.activityInfo.packageName, info.activityInfo.name);
intent.setType("text/plain");
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, ShortDesc+" from "+BusinessName);
intent.putExtra(android.content.Intent.EXTRA_TEXT, ShortDesc+" "+shortURL);
intent.putExtra(Intent.EXTRA_TITLE, ShortDesc+" "+shortURL);
((Activity)context).startActivity(intent);
}// end onClick
});
AlertDialog alert = builder.create();
alert.show();
चरण 2: अब आप अपने एडाप्टर के लिए एक लेआउट inflater बनाने (ShareIntentListAdapter.java)
package com.android;
import android.app.Activity;
import android.content.pm.ResolveInfo;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ShareIntentListAdapter extends ArrayAdapter{
private final Activity context;
Object[] items;
public ShareIntentListAdapter(Activity context,Object[] items) {
super(context, R.layout.social_share, items);
this.context = context;
this.items = items;
}// end HomeListViewPrototype
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.social_share, null, true);
// set share name
TextView shareName = (TextView) rowView.findViewById(R.id.shareName);
// Set share image
ImageView imageShare = (ImageView) rowView.findViewById(R.id.shareImage);
// set native name of App to share
shareName.setText(((ResolveInfo)items[position]).activityInfo.applicationInfo.loadLabel(context.getPackageManager()).toString());
// share native image of the App to share
imageShare.setImageDrawable(((ResolveInfo)items[position]).activityInfo.applicationInfo.loadIcon(context.getPackageManager()));
return rowView;
}// end getView
}// end main onCreate
चरण 3: अपने XML लेआउट Ty बनाएं संवाद बॉक्स में सूची दृश्य दिखाने के लिए pe (social_share।एक्सएमएल)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/categoryCell"
android:layout_width="match_parent"
android:layout_height="30dip"
android:background="@android:color/white" >
<TextView
android:id="@+id/shareName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginBottom="15dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="15dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000"
android:textStyle="bold" />
<ImageView
android:id="@+id/shareImage"
android:layout_width="35dip"
android:layout_height="35dip"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:contentDescription="@string/image_view" />
</RelativeLayout>
// vKj
स्रोत
2013-12-17 12:13:27
जहां समस्या है? आप क्लिक किए गए आइटम के आधार पर इरादा भेजते हैं ?! समस्या –
आह कहां है, मेरा मतलब है कि मैं कैसे जान सकता हूं कि साझा करने के लिए कौन सा इरादा चुना गया है? – anticafe
इतना बुरा, http://stackoverflow.com/questions/6137592/how-to-now-the-action-choosed-in-a-intent-createchooser और http://stackoverflow.com/questions/4417019/ के अनुसार कैसे-से-उपयोगकर्ता-चयन-से-startactivityforresultintent-createchooserfi, मुझे नहीं पता कि कौन सा इरादा उपयोगकर्ता चुनता है। – anticafe