Intereting Posts
Android-приложение вылетает после обфускации proguard Создание фонового изображения для Android-приложения – Java Android ListView в действии становится обновленным при изменении ориентации Android-анимация Listview Refresh Использование facebook SDK на Android дает «Пользователь зарегистрирован как пользователь Facebook другого пользователя». Как создать прозрачную полосу прокрутки в android? Добавление заголовка обратно в окно Android при использовании PhoneGap Activity-Alias ​​удаляется при обновлении приложения Android и зависимость от инъекций Сервис перерабатывает родительское приложение в Google Glass? Список устройств, на которых Renderscript не работает Поддержка внешнего ключа ORMlite для Android Как установить частоту для fm-радио в android? Как показать индикатор выполнения для процесса загрузки в каждой строке списка по одному? Android: Управление KeyStores -> Перемещение между машинами

Как настроить мероприятие Onclick для совместного использования контента в Android

Как настроить Android Share Intent для приложения Facebook. Когда я использую Intent, я получаю следующий диалог.

Разделить диалог намерений

Но я использую Facebook sdk для публикации изображения и текста. И как настроить, когда мы нажимаем на значок Facebook в приведенном выше диалоге, он перейдет к моему пользовательскому диалоговому окну facebook

Используя приведенный ниже код, вы можете получить список списка приложений для социальных сетей, которые установлены на вашем мобильном телефоне.

Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND); sendIntent.setType("text/plain"); List activities = ShareList.this.getPackageManager().queryIntentActivities(sendIntent, 0); 

Отправьте этот список классу адаптера:

 ListView lv=(ListView)findViewById(R.id.listView1); final ShareAdapter adapter=new ShareAdapter(ShareList.this,activities.toArray()); lv.setAdapter(adapter); 

Вот код класса адаптера:

 public class ShareAdapter extends BaseAdapter { Object[] items; private LayoutInflater mInflater; Context context; public ShareAdapter(Context context, Object[] items) { this.mInflater = LayoutInflater.from(context); this.items = items; this.context = context; } public int getCount() { return items.length; } public Object getItem(int position) { return items[position]; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.singleitem, null); holder = new ViewHolder(); holder.name = (TextView) convertView.findViewById(R.id.textView1); holder.logo = (ImageView) convertView.findViewById(R.id.imageView1); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.name .setText(((ResolveInfo) items[position]).activityInfo.applicationInfo .loadLabel(context.getPackageManager()).toString()); holder.logo .setImageDrawable(((ResolveInfo) items[position]).activityInfo.applicationInfo .loadIcon(context.getPackageManager())); return convertView; } static class ViewHolder { TextView name; ImageView logo; }} 

Обработка конкретной сети социальных сетей в списке с помощью приведенного ниже кода:

 lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub ResolveInfo info = (ResolveInfo) adapter.getItem(arg2); if(info.activityInfo.packageName.contains("facebook")) { new PostToFacebookDialog(context, body).show(); //here u can write your own code to handle the particular social media networking apps. Toast.makeText(getApplicationContext(), "FaceBook", Toast.LENGTH_LONG).show(); } else { Intent intent = new Intent(android.content.Intent.ACTION_SEND); intent.setClassName(info.activityInfo.packageName, info.activityInfo.name); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); intent.putExtra(Intent.EXTRA_TEXT, "body"); ((Activity)ShareList.this).startActivity(intent); } } }); 

Я использовал решение Вену , чтобы получить «настроенное намерение поделиться». У меня просто было мало проблем, создав xml. Поэтому здесь я хочу показать другим новичкам Android, как добавить custom_share_list_white .xml. Может быть, это поможет другим заставить его работать.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/listView" android:footerDividersEnabled="false"/> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Large Text" android:id="@+id/tv_share_adapter" android:gravity="center_vertical" android:layout_gravity="center_vertical"/> </LinearLayout> </LinearLayout> </LinearLayout> 

В ShareAdapter.java:

  public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.custom_share_list_white, null); holder = new ViewHolder(); holder.name = (TextView) convertView.findViewById(R.id.tv_share_adapter); holder.logo = (ImageView) convertView.findViewById(R.id.imageView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.name.setText(((ResolveInfo) items[position]).activityInfo .applicationInfo.loadLabel(context.getPackageManager()).toString()); holder.logo.setImageDrawable(((ResolveInfo) items[position]).activityInfo .applicationInfo.loadIcon(context.getPackageManager())); return convertView; }