我想共享列表视图items.Listview包含许多items.But当我选择第三或任何项目以外的第一个项目共享,它只采取第一个项目共享。我有附上我的代码。请帮我解决这个问题。android分享选项列表视图项目
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.share:
SparseBooleanArray selectedshare = adapter.getSelectedIds();
for (int i = (selectedshare.size() - 1); i >= 0; i--) {
if (selectedshare.valueAt(i)) {
val = list.get(i).getId();
System.out.println("idddddddddd"+val);
date = list.get(i).getDate();
System.out.println("dateeee"+date);
title = list.get(i).getTitle();
System.out.println("titleeee"+title);
content = list.get(i).getContent();
System.out.println("contenttttt"+content);
shareIt();
}
}
return true;
///////for sharing///////
default:
return false;
}
}
////here is the function//////
private void shareIt() {
//sharing implementation here
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "All memories");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Date :"+date +"\n"+"Title :"+title+"\n"+"Content :"+ content);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
这里是我的适配器代码: 我做的适配器类没有共享。
public class ListViewAdapter extends BaseAdapter {
public ArrayList<all_memories_getter_setter>list;
Activity activity;
/////**///// multiple delete
private SparseBooleanArray mSelectedItemsIds;
public ListViewAdapter(Activity activity,
ArrayList<all_memories_getter_setter>list)
{
super();
mSelectedItemsIds= new SparseBooleanArray();
this.activity=activity;
this.list=list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
/////**/////// for multiple delete
public void remove(all_memories_getter_setter object){
list.remove(object);
notifyDataSetChanged();
}
public List<all_memories_getter_setter> getall_memories_getter_setter(){
return list;
}
public void toggleSelection(int position){
selectView(position, !mSelectedItemsIds.get(position));
}
public void removeSelection(){
mSelectedItemsIds = new SparseBooleanArray();
notifyDataSetChanged();
}
public void selectView(int position , boolean value){
if(value){
mSelectedItemsIds.put(position, value);
}else{
mSelectedItemsIds.delete(position);
notifyDataSetChanged();
}
}
public int getSelectedCount(){
return mSelectedItemsIds.size();
}
public SparseBooleanArray getSelectedIds(){
return mSelectedItemsIds;
}
public class Viewholder
{
TextView txtFirst;
TextView txtSecond;
TextView txtThird;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Viewholder holder;
LayoutInflater inflater = activity.getLayoutInflater();
if (convertView == null) {
convertView =
inflater.inflate(R.layout.activity_all_memories_listview, null);
holder = new Viewholder();
holder.txtFirst = (TextView)
convertView.findViewById(R.id.list_date);
holder.txtSecond = (TextView)
convertView.findViewById(R.id.list_title);
holder.txtThird = (TextView)
convertView.findViewById(R.id.list_content);
convertView.setTag(holder);
} else {
holder = (Viewholder) convertView.getTag();
}
holder.txtFirst.setText("" + list.get(position).getDate());
holder.txtSecond.setText("" + list.get(position).getTitle());
holder.txtThird.setText("" + list.get(position).getContent());
return convertView;
}
}
您需要创建** customcallbacks ** – Karthik
刚刚接触android。所以请帮助我做到这一点。怎么做? – bubbly
在哪里你得到你点击哪个项目,你正在运行一个反向循环,所以你会得到最后一个项目的值,即第一项 –