2016-12-04 115 views
0

我在android studio中创建了一个联系人列表。列表中的每一项都包含名称,电话号码和图片。我想要做的事情是当我单击某个项目时,它会开始拨打它包含的电话号码。但我无法为每个项目设置不同的电话号码。我可以做的是解析一个静态数字,因此无论我点击哪个项目,都会调用该特定号码。我可以做那个?用不同的电话号码拨打电话的Android联系人列表

sazritListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 

      Intent intent = new Intent(Intent.ACTION_CALL); 
      intent.setData(Uri.parse("tel:0000")); 
      startActivity(intent); 

      return true; 
     } 
    }); 

回答

0

看起来像您使用的是ListView,那么你可能已经实现你的Adapter一个getView方法。

所以一个setTag行添加到您的getView方法,它应该是这个样子:

View getView (int position, View convertView, ViewGroup parent) { 
    View view; 
    if (convertView != null) { 
     view = convertView; 
    } else { 
     view = inflater.inflate(...) // Inflate a new view 
    } 
    MyObject obj = getItem(position); 

    // set texts and images onto view 

    view.setTag(obj.phoneNumber); // Tag the view with the phone-number 
} 

然后在onItemLongClick代码:

String phoneNumber = (String) view.getTag(); 
Intent intent = new Intent(Intent.ACTION_CALL); 
intent.setData(Uri.parse("tel:" + phoneNumber)); 
startActivity(intent); 
return true;