【问题标题】:How to add call logs List in android java?如何在android java中添加通话记录列表?
【发布时间】:2020-12-08 09:07:14
【问题描述】:

我想在列表中添加通话记录

我的代码工作正常,但它只显示一个通话记录, 任何解决方案, 我是初学者,请检查我的代码图像并帮助我。
[1]:https://i.stack.imgur.com/joGU1.png

 //Recycler Function
        recyclerView_cl = view.findViewById(R.id.receyclerView_cl);
        LinearLayoutManager LayoutManager = new LinearLayoutManager(view.getContext());
        LayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView_cl.setLayoutManager(LayoutManager);


        Cursor managedCursor = getActivity().managedQuery(CallLog.Calls.CONTENT_URI, null,
                null, null, null);
        int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
        int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
        int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
        int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
        while (managedCursor.move(3)) {
            List<CallModelClass> modelClassList = new ArrayList<>();
            CallAdapter adapter = new CallAdapter(modelClassList);
            modelClassList.add(new CallModelClass("name from", "call type", "sasa"));
            recyclerView_cl.setAdapter(adapter);
            adapter.notifyDataSetChanged();

            String phNumber = managedCursor.getString(number);
            String callType = managedCursor.getString(type);
            String callDate = managedCursor.getString(date);
            Date callDayTime = new Date(Long.valueOf(callDate));
            String callDuration = managedCursor.getString(duration);
            String dir = null;
            int dircode = Integer.parseInt(callType);
            switch (dircode) {
                case CallLog.Calls.OUTGOING_TYPE:
                    dir = "OUTGOING";
                    break;
                case CallLog.Calls.INCOMING_TYPE:
                    dir = "INCOMING";
                    break;
                case CallLog.Calls.MISSED_TYPE:
                    dir = "MISSED";
                    break;
            }
                modelClassList.add(new CallModelClass(phNumber,dir,callDate));
        }
        managedCursor.close();

【问题讨论】:

  • 您的清单是什么样的?
  • 我添加了权限 我的代码工作正常,但我不知道如何在模型类中为 RecyclerView 添加通话记录数据?

标签: java android android-studio


【解决方案1】:

将这两行移出您的 while 循环(将主题放在循环调用之上):

List<CallModelClass> modelClassList = new ArrayList<>();
CallAdapter adapter = new CallAdapter(modelClassList);

另外,在你的while 循环结束之后调用这个:adapter.notifyDataSetChanged();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多