마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰에 통화기록을 하나씩 넣고 싶어요

0 추천
package com.example.call;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.CallLog;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.text.SimpleDateFormat;
import java.util.Date;


public class call1Activity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstantiate) {
        super.onCreate(savedInstantiate);
        setContentView(R.layout.call1);

        final ListView list1 = (ListView)findViewById(R.id.list1);

        final String[] calllist = {getCallhistory()};

        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,calllist);
        list1.setAdapter(adapter);

        list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(call1Activity.this,
                        call2Activity.class);
                startActivity(intent);
            }
        });
    }

    public String getCallhistory() {
        String[] callSet = new String[]{CallLog.Calls.DATE, CallLog.Calls.TYPE, CallLog.Calls.NUMBER, CallLog.Calls.DURATION};

        Cursor c = getContentResolver().query(CallLog.Calls.CONTENT_URI, callSet, null, null, null);

        StringBuffer callBuff = new StringBuffer();

        c.moveToFirst();
        do {
            long callDate = c.getLong(0);
            SimpleDateFormat datePatturn = new SimpleDateFormat("yyyy-MM-dd");
            String date_str = datePatturn.format(new Date(callDate));
            callBuff.append(date_str + ":");
            if (c.getInt(1) == CallLog.Calls.INCOMING_TYPE)
                callBuff.append("수신: ");
            else
                callBuff.append("발신: ");
            callBuff.append(c.getString(2) + " :");
            callBuff.append(c.getString(3) + "초\n");
        } while (c.moveToNext());

        c.close();
        return callBuff.toString();
    }
}

이렇게 하니까 리스트뷰 아이템 한칸에 기록이 다 들어가요 ㅠㅠㅠ 한칸에 기록 하나씩 들어가게 도와주세요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
익명사용자 님이 2019년 12월 17일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...