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

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

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

Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? - Программирование Android

14.10.2013, 23:05. Просмотров 596. Ответов 6
Метки нет (Все метки)

Форумчане, позвольте спросить: как сохранять имя и фамилию пользователя и использовать их в уведомлении?
Ранее Java не занимался всерьёз... Вот и не знаю. Литературу читал искал на форумах в учебниках... Ну, не получилось реализовать...
Вот код для считывания данных:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
package ru.project.testinfomats;
 
import android.app.Activity;
import android.os.Bundle;
 
public class CInfo extends Activity {
    
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.custom);
    }  
}
Разметка с EditText:
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="Фамилия:" />
    <EditText
        android:id="@+id/surname"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:hint="Введите фамилию..." />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="Имя:" />
    <EditText
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:hint="Введите имя..." />
 
</LinearLayout>
Код уведомления:
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
package ru.project.testinfomats;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
 
@SuppressLint("SimpleDateFormat")
public class NotificationService extends Service {
 
    public IBinder onBind(Intent intent) {
        return null;
    }
 
    @SuppressWarnings("deprecation")
    public void onCreate() {
        final int NOTIFY_ID = 1101;
        
        long when = System.currentTimeMillis();
        
        Date now = new Date();
        DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
        String date = formatter.format(now);
                            
                    NotificationManager mNotificationManager = (NotificationManager)
                        getSystemService(Context.NOTIFICATION_SERVICE);
            
                    int icon = R.drawable.ic_launcher;
                    CharSequence contentText = "Просим вас оплатить коммунальные услуги";
                                
                    Notification ntf = new Notification(icon, null, when);
                    @SuppressWarnings("unused")
                    Context context = getApplicationContext();
                    ntf.defaults = Notification.DEFAULT_SOUND;
                                        
                    Intent i = new Intent(this, NotificationDialog.class);
                    @SuppressWarnings("unused")
                    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, i, 0);
                    ntf.setLatestEventInfo(this, date, contentText, PendingIntent.getActivity(this, 1, i, 0));
                    mNotificationManager.notify(NOTIFY_ID, ntf);
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2013, 23:05     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении?
Посмотрите здесь:
Загрузить данные один раз с MySQL таблицы в память приложения, и в дальнейшем использовать ее Android
Android Обработать нажатие на кнопки в уведомлении
Android Выполнение действий при нажатии на представление в уведомлении
Как сохранять добавленное в ListView поле? Android
Как в отдельном классе сохранять переменные? Android
Android Как правильно сохранять/восстанавливать данные из Bundle
Android Как сохранять значения именно в кэш-память, а не в оперативку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
15.10.2013, 00:55     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? #2
Добавь кнопку, по нажатию на которую будут считываться значения из полей, далее можно сохранить результат в SharedPreferences и доставать оттуда когда и где душе угодно.
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
15.10.2013, 21:08  [ТС]     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? #3
Спасибо. Нашёл тему про SharedPreferences, и сохранил имя и фамилию.
Теперь как их достать и поставить в заголовок уведомления?
Прилагаю код Activity с сохранением(в нём названия строк с данными) и код уведомления(в нём я уже пытался вызвать строку в заголовок уведомления(titleText)). Но ничего не заработало...
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
package ru.project.testinfomats;
 
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.widget.EditText;
 
public class CInfo extends Activity {
    
    EditText surname;
    EditText name;
    SharedPreferences sPref;
    final String SURNAME = "surname";
    final String NAME = "name";
    
    protected void onDestroy() {
    saveText();
    super.onDestroy();
    }
    
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.custom);
        
        surname = (EditText) findViewById(R.id.surname);  
        name = (EditText) findViewById(R.id.name);
        loadText();
    }
    
    void saveText() {
        sPref = getPreferences(MODE_PRIVATE);
        Editor ed = sPref.edit();
        ed.putString(NAME, name.getText().toString());
        ed.putString(SURNAME, surname.getText().toString());
        ed.commit();
    }
    
    void loadText() {   
        sPref = getPreferences(MODE_PRIVATE);
        String surnm = sPref.getString(SURNAME, "");
        String nm = sPref.getString(NAME, "");
        surname.setText(surnm);
        name.setText(nm);
    }
}
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
53
54
package ru.project.testinfomats;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.IBinder;
 
@SuppressLint("SimpleDateFormat")
public class NotificationService extends Service {
 
    SharedPreferences sPref;
    
    public IBinder onBind(Intent intent) {
        return null;
    }
 
    @SuppressWarnings("deprecation")
    public void onCreate() {
        final int NOTIFY_ID = 1101;
        
        long when = System.currentTimeMillis();
        
        Date now = new Date();
        DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
        String date = formatter.format(now);
                            
                    NotificationManager mNotificationManager = (NotificationManager)
                        getSystemService(Context.NOTIFICATION_SERVICE);
            
                    int icon = R.drawable.ic_launcher;
                    CharSequence titleText = "Уважаемый(ая) " + sPref.getString(SURNAME);
                    CharSequence contentText = "Просим вас оплатить коммунальные услуги";
                                
                    Notification ntf = new Notification(icon, null, when);
                    @SuppressWarnings("unused")
                    Context context = getApplicationContext();
                    ntf.defaults = Notification.DEFAULT_SOUND;
                                        
                    Intent i = new Intent(this, NotificationDialog.class);
                    @SuppressWarnings("unused")
                    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, i, 0);
                    ntf.setLatestEventInfo(this, titleText, contentText, PendingIntent.getActivity(this, 1, i, 0));
                    mNotificationManager.notify(NOTIFY_ID, ntf);
    }
}
Что не так???
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
15.10.2013, 22:40     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? #4
что то не нашел где в сервисе инициализируется sPref.
а лучше всего используйте для таких целей хелперы.

Кликните здесь для просмотра всего текста
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* 
 * License: GPLv3 ([url]http://www.gnu.org/licenses/gpl-3.0.html[/url])
 * Start: 01.02.2012
 */
 
package ru.helpers;
 
import android.content.Context;
import android.content.SharedPreferences;
 
public class SPHelper {
    public static final String  SHARED_PREFS    = "SHARED_PREFS";
    private Context             mContext;
 
    public SPHelper(Context context) {
        mContext = context;
    }
 
    // SAVE TO PREFS
    public void saveToPrefsString(String _key, String _value) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        SharedPreferences.Editor prefsEdit = prefs.edit();
 
        prefsEdit.putString(_key, _value);
        prefsEdit.commit();
    }
 
    public void saveToPrefsInt(String _key, int _value) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        SharedPreferences.Editor prefsEdit = prefs.edit();
 
        prefsEdit.putInt(_key, _value);
        prefsEdit.commit();
    }
 
    public void saveToPrefsLong(String _key, long _value) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        SharedPreferences.Editor prefsEdit = prefs.edit();
 
        prefsEdit.putLong(_key, _value);
        prefsEdit.commit();
    }
 
    public void saveToPrefsFloat(String _key, float _value) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        SharedPreferences.Editor prefsEdit = prefs.edit();
 
        prefsEdit.putFloat(_key, _value);
        prefsEdit.commit();
    }
 
    public void saveToPrefsBoolean(String _key, boolean _value) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        SharedPreferences.Editor prefsEdit = prefs.edit();
 
        prefsEdit.putBoolean(_key, _value);
        prefsEdit.commit();
    }
 
    // GET FROM PREFS
    public String getFromPrefsString(String _key) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        String value = prefs.getString(_key, "");
 
        return value;
    }
 
    public String getFromPrefsString(String _key, String _default) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        String value = prefs.getString(_key, _default);
 
        return value;
    }
 
    public int getFromPrefsInt(String _key) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        int value = prefs.getInt(_key, 0);
 
        return value;
    }
 
    public int getFromPrefsInt(String _key, int _default) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        int value = prefs.getInt(_key, _default);
 
        return value;
    }
 
    public long getFromPrefsLong(String _key) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        long value = prefs.getLong(_key, 0);
 
        return value;
    }
 
    public long getFromPrefsLong(String _key, long _default) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        long value = prefs.getLong(_key, _default);
 
        return value;
    }
 
    public float getFromPrefsFloat(String _key) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        float value = prefs.getFloat(_key, 0);
 
        return value;
    }
 
    public float getFromPrefsFloat(String _key, float _default) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        float value = prefs.getFloat(_key, _default);
 
        return value;
    }
 
    public boolean getFromPrefsBoolean(String _key) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        boolean value = prefs.getBoolean(_key, false);
 
        return value;
    }
 
    public boolean getFromPrefsBoolean(String _key, boolean _default) {
        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0);
        boolean value = prefs.getBoolean(_key, _default);
 
        return value;
    }
}
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
16.10.2013, 06:26  [ТС]     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? #5
На 40-ой строке во втором коде. Хотел склеять в заголовок, типа: "Уважаемый(ая) Ф. И."...
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
16.10.2013, 06:29     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? #6
это я понял, просто не понятно где вы инициализируете sPref
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 06:56     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении?
Еще ссылки по теме:
Однократно ввести номер телефона, и в дальнейшем не выводить Android
Android Получить данных о пользователе по gmail (пол, возраст)
Android Написать свой компонент для частого использования в дальнейшем — редактор с двумя кнопками
Android как получить информацию о входящих письмах
Как редактировать информацию в Android Studio? Android

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

Или воспользуйтесь поиском по форуму:
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
16.10.2013, 06:56  [ТС]     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении? #7
Простите, по-подробнее... Как это сделать?
З. Ы.: Я - новичок...
Yandex
Объявления
16.10.2013, 06:56     Как сохранять информацию о пользователе и использовать её в дальнейшем уведомлении?
Ответ Создать тему
Опции темы

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