【问题标题】:Add call option to custom listview将调用选项添加到自定义列表视图
【发布时间】:2016-01-03 17:04:06
【问题描述】:

我想为自定义列表视图中的每个联系人添加通话选项。我这样做了。我有一个图像视图,单击时我需要拨打电话。显示的错误是“未定义类型 new View.OnClickListener() 的方法 startActivity(View)”

public View getView(int position, View convertView, ViewGroup arg2) {
    listRowAuto autoListItems = autoList.get(position);

    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.item_auto, null);

    }

    TextView tvName = (TextView) convertView.findViewById(R.id.auto_tv1);
    tvName.setText(autoListItems.getName());
    TextView tvPhone = (TextView) convertView.findViewById(R.id.auto_tv2);
    tvPhone.setText(autoListItems.getPhone());
    ImageView autoCall=(ImageView) convertView.findViewById(R.id.auto_call);
    autoCall.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view1) {
            // TODO Auto-generated method stub
            view1 = new Intent("android.intent.action.CALL");

            view1.setData(Uri.parse((new StringBuilder()).append("tel:").append(autoListItems.getPhone()).toString()));
            startActivity(view1);

        }
    });
    return convertView;
}

【问题讨论】:

    标签: android listview android-intent


    【解决方案1】:

    您的问题是您正在使用视图作为参数调用 startActivity。 startActivity 只接受一个意图。

    view1 在这里被声明为 View 类型。

    public void onClick(View view1) {
    

    一个简单的解决方法是执行以下操作。

    @Override
        public void onClick(View view1) {
            // TODO Auto-generated method stub
            Intent i = new Intent("android.intent.action.CALL");
    
            i.setData(Uri.parse((new StringBuilder()).append("tel:").append(autoListItems.getPhone()).toString()));
            startActivity(i);
    
        }
    

    【讨论】:

    • 仍然出现错误:看看这张图片s14.postimg.org/ckak0xh5d/image.png
    • 在您的自定义列表视图中,您必须使用传递的 Activity 调用 startActivity()。请发布您的整个课程,以便我提供帮助。
    • context.startActivity(i) 有帮助吗?
    • 我做了一个小改动,但出现了新错误:01-03 23:18:09.895: E/AndroidRuntime(29613): java.lang.ClassCastException: android.widget.Button 无法转换为 android .widget.ImageView 01-03 23:18:09.895: E/AndroidRuntime(29613): at com.onemedia.koottam.listAdapterAuto.getView(listAdapterAuto.java:60) 01-03 23:18:09.895: E/AndroidRuntime( 29613): 在 android.widget.AbsListView.obtainView(AbsListView.java:2586) 你能帮我解决这个问题吗?
    • 更改这一行(第 60 行)ImageView autoCall=(ImageView) convertView.findViewById(R.id.auto_call); to Button autoCall=(Button) convertView.findViewById(R.id.auto_call);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多