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