Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
#1

Как в listview можно записать историю вызовов - Программирование Android

21.01.2015, 18:52. Просмотров 443. Ответов 13
Метки нет (Все метки)

Пишу Dialer, осталось одна проблема ума не приложу как получить список исходящих, входящих и пропущенных звонков, и запихнуть его в список.
P.S. список лежит на фрагменте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2015, 18:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как в listview можно записать историю вызовов (Программирование Android):

Как распарсить страницу и записать данные в ListView? - Программирование Android
Добрый день , Киборги! Прошлая тема ,созданная мною в данном разделе , касалась вопроса WebView'a ,но теперь все стало предельно ясно. ...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

Можно ли обработать два ListView в пределах одного activity на android? - Программирование Android
Делаю небольшое приложение, которое показывает несколько ListView через ViewFlipper. Для обработки кликов использую найденный на...

Очистить историю подключений USB-flash и историю браузера - Ubuntu Linux
Привет, форумчане! Подскажите, где хранится инфа об: 1. Подключенные устройства чререз USB (флешки и .т.п.); 2. История серфинга...

Можно ли где-то посмотреть историю домена - SEO
Сегодня узнал что мой домен был зарегистрирован еще до меня) аж в далеком 2008 году. У меня вопрос, можно ли как то узнать были ли проблемы...

Можно ли удалить историю входов в аккаунт в GMAIL ? - Безопасность сайтов
Вопрос знатокам, все перерыл, но так и не нашел ответа: Можно ли ударить историю входов в аккаунт google, gmail? И ещё вопрос на засыпку:...

13
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 20:00 #2
http://stackoverflow.com/questions/7...ogrammatically
0
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
21.01.2015, 20:33  [ТС] #3
у меня не работает ни один
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
21.01.2015, 20:39 #4
Лечу геморрой по космической связи
0
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
22.01.2015, 11:21 #5
MainActivity
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class MainActivity extends Activity {
    TextView textView = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.textview_call);
        getCallDetails();
    }
 
    private void getCallDetails() {
 
        StringBuffer sb = new StringBuffer();
        Cursor managedCursor = 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);
        sb.append("Call Log :");
        while (managedCursor.moveToNext()) {
            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;
            }
            sb.append("\nPhone Number:--- " + phNumber + " \nCall Type:--- "
                    + dir + " \nCall Date:--- " + callDayTime
                    + " \nCall duration in sec :--- " + callDuration);
            sb.append("\n----------------------------------");
        }
        //managedCursor.close();
        textView.setText(sb);
    }
 
}


в манифесте
XML
1
  <uses-permission android:name="android.permission.READ_CALL_LOG"/>
activity_main.xml
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
 
    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
 
        <TextView
            android:id="@+id/textview_call"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" />
    </ScrollView>
 
</RelativeLayout>
0
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
22.01.2015, 12:27  [ТС] #6
я пробовал это
приложение вылетает
0
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
22.01.2015, 12:28 #7
логи в студию
0
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
22.01.2015, 12:46  [ТС] #8
Кликните здесь для просмотра всего текста

android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.app.Activity.performStart(Activity.java:5143)
01-22 09:38:30.793: E/AndroidRuntime(1154): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
01-22 09:38:30.793: E/AndroidRuntime(1154): ... 11 more
01-22 09:38:32.209: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:38:37.209: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:38:42.213: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:38:47.213: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:38:52.213: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:38:57.217: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:02.217: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:07.217: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:12.217: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:17.221: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:22.221: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:27.221: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:32.221: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:37.225: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:42.225: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:47.225: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:52.229: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:39:57.229: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:02.229: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:07.229: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:12.233: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:17.233: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:22.237: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:27.237: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:32.237: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:37.241: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:42.241: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:47.245: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:52.245: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:40:57.249: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:02.249: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:07.249: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:12.253: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:17.253: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:22.253: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:27.257: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:31.965: E/jdwp(1196): Failed sending reply to debugger: Broken pipe
01-22 09:41:32.253: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:32.961: E/AndroidRuntime(1196): FATAL EXCEPTION: main
01-22 09:41:32.961: E/AndroidRuntime(1196): java.lang.RuntimeException: Unable to start activity ComponentInfo{creative_garret.material_dialer/creative_garret.material_dialer.MainActivity}: java.lang.NullPointerException
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.os.Handler.dispatchMessage(Handler.java:99)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.os.Looper.loop(Looper.java:137)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.ActivityThread.main(ActivityThread.java:5103)
01-22 09:41:32.961: E/AndroidRuntime(1196): at java.lang.reflect.Method.invokeNative(Native Method)
01-22 09:41:32.961: E/AndroidRuntime(1196): at java.lang.reflect.Method.invoke(Method.java:525)
01-22 09:41:32.961: E/AndroidRuntime(1196): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-22 09:41:32.961: E/AndroidRuntime(1196): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-22 09:41:32.961: E/AndroidRuntime(1196): at dalvik.system.NativeStart.main(Native Method)
01-22 09:41:32.961: E/AndroidRuntime(1196): Caused by: java.lang.NullPointerException
01-22 09:41:32.961: E/AndroidRuntime(1196): at creative_garret.material_dialer.fragments.ScreenOne.getCallDetails(ScreenOne.java:235)
01-22 09:41:32.961: E/AndroidRuntime(1196): at creative_garret.material_dialer.fragments.ScreenOne.onCreateView(ScreenOne.java:227)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.Activity.performStart(Activity.java:5143)
01-22 09:41:32.961: E/AndroidRuntime(1196): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
01-22 09:41:32.961: E/AndroidRuntime(1196): ... 11 more
01-22 09:41:37.257: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:42.261: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:47.261: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:52.261: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:41:57.265: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:02.265: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:07.265: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:12.265: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:17.269: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:22.269: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:27.269: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:32.273: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:37.273: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:42.273: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:47.273: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:52.277: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:42:57.285: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:02.285: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:07.285: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:12.285: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:17.285: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:22.289: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:27.293: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
01-22 09:43:32.293: E/Genymotion(386): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
22.01.2015, 15:33 #9
ScreenOne это ваш класс? в 235 строке видимо null, что там?
0
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
22.01.2015, 15:47  [ТС] #10
да, это класс фрагмента
325 строка это сама фукция private void getCallDetails()
0
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
22.01.2015, 15:51 #11
Создайте отдельный проект с тем кодом, что я дал и проверьте.
0
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
22.01.2015, 16:00  [ТС] #12
эм, создал новый проект и приложение вылетает
у меня есть вариант, что это из - за managedQuery, она вроде как устарела, я меняю ее на context.getContentResolver().query
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
22.01.2015, 17:08 #13
Продебажьте пошагово каждый метод в Debug, по логам только сам гугл может понять проблему.
0
HiggsMan
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 9
22.01.2015, 18:37  [ТС] #14
эм, я вообщем нашел рабочий пример, но я не знаю как прикрутить его к фпагменту
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class CallLogActivity extends ListActivity {
 
 
    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.screen_first);
        Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI,
                null, null, null, CallLog.Calls.DEFAULT_SORT_ORDER);
        startManagingCursor(cursor);
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                android.R.layout.simple_list_item_1, cursor,
                new String[] { CallLog.Calls.NUMBER },
                new int[] { android.R.id.text1 });
        setListAdapter(adapter);
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2015, 18:37
Привет! Вот еще темы с ответами:

Как записать данные из XML файла в ListView - C#
Привет. у меня проблема. не могу записать(прочитать и в нужное место записать) данные из XML файла в нужные столбцы и строки в ListViewю...

Где можно найти всю историю сообщений ICQ? - Софт
Помогите, где можно найти всю историю сообщений???

GIT. Можно ли просмотреть историю изменений конкретного файла? - Системы контроля версий
Есть проект из нескольких файлов. В процессе работы создано пара десятков коммитов. При каждом коммите изменялись не все файлы. Можно ли...

Можно ли программно получить стек вызовов в 1с? - 1С
можно ли в 1с программно получить стек вызовов, для того чтобы понять из какой процедуры или функции вызван текущий код?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
22.01.2015, 18:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru