在列表视图上使用ACTION_CALL

时间:2014-10-13 11:44:13

标签: android

任何人都可以告诉我这个代码有什么问题吗?请

我可以看到" Log"正确,但ACTION_CAL不起作用...

    final int pos = position;

    ImageView ImageView = (ImageView) convertView.findViewById(R.id.call);

    ImageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Log.v("name :: ", feedItems.get(pos).getName());

            String message = feedItems.get(pos).getName();
            String number = "tel:" + message.toString().trim();
            Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(number)); 
            startActivity(callIntent);
        }

        private void startActivity(Intent callIntent) {
            // TODO Auto-generated method stub

        }
    });

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

这是什么

private void startActivity(Intent callIntent) {
      // TODO Auto-generated method stub

 }

请将其删除并使用context.startActivity(Intent intent);

如果您的适配器处于活动状态或片段中,请致电startActivity(callIntent)

If是一个完整的seprate类,并从您的活动或片段中传递构造函数中的上下文。

喜欢

   private Context mContext;

   public CustomAdapter(Context context) {
      mContext = context;
   }

   @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Log.v("name :: ", feedItems.get(pos).getName());

        String message = feedItems.get(pos).getName();
        String number = "tel:" + message.toString().trim();
        Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(number)); 
        mContext.startActivity(callIntent);
    }

添加权限:

<uses-permission android:name="android.permission.CALL_PHONE" />

答案 1 :(得分:0)

似乎你在适配器中,你无法调用startActivity。 如果您使用ListAdapter或其他,您可以简单地替换此行:
startActivity(callIntent);
withi this:
getContext().startActivity(callIntent);