使用共享意图选择器在Facebook wallpost上分享Listview项目

时间:2014-03-25 12:08:20

标签: android android-intent android-facebook

我从服务器获取数据并将其设置为listview。每个Listview项目都有两个textview和一个按钮。我已经实现了所有代码并且工作得很完美..但是任何人都可以帮助我..如何在点击特定listview项目的按钮时实现facebook分享意图。我想使用共享意图选择器分享offer_name到facebook wall post。

enter image description here

这是我的getView代码: -

public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.offer_list_item, parent,
                false);
        holder.tv1 = (TextView) convertView.findViewById(R.id.offer_name);
        holder.tv2 = (TextView) convertView.findViewById(R.id.expiry_date);
        holder.b = (Button) convertView.findViewById(R.id.item_button);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    Item1 it = item.get(position);
    holder.tv1.setText(it.getoffer_name());
    holder.tv2.setText("offer ends:" + it.getexpiry_date());
    holder.b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // holder.b.setText("Joined");
            // holder.b.setTextColor(Color.parseColor("#ffffff"));
            // holder.b.setTextSize(10);
        }
    });
    return convertView;
}

2 个答案:

答案 0 :(得分:0)

首先,您只能在Facebook墙上共享链接。你不能发送任何预先填写的消息 - 这是违反Facebook的政策。

其次,您应该遵守指南,不要强迫用户使用特定的共享渠道(参考)

您可以过滤响应共享Intent的应用(例如link),但请注意并非所有用户都可以安装Facebook。

总而言之,我认为这不是一个好主意。

答案 1 :(得分:0)

    lv.setOnItemClickListener(
            new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    for (int i = 0; i <= 100; i++) {
                        if (position == i) {

                            lv.setDrawingCacheEnabled(true);
                            Bitmap bitmap = lv.getDrawingCache();


                            File cache = getApplicationContext().getExternalCacheDir();
                            File sharefile = new File(cache, "toshare.png");
                            try {
                                FileOutputStream out = new FileOutputStream(sharefile);
                                bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
                                out.flush();
                                out.close();
                            } catch (IOException e) {

                            }

                            Intent share = new Intent(android.content.Intent.ACTION_SEND);
                            share.setType("image/*");
                            share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + sharefile));
                            startActivity(share);
                            startActivity(Intent.createChooser(share, "Send your picture using:"));
                        }
                    }
                }
            });
相关问题