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

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

Войти
Регистрация
Восстановить пароль
 
 
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
#1

Получение String из другого класса в Activity widget - Программирование Android

16.08.2016, 10:59. Просмотров 268. Ответов 15

Хей, гайз!
Проблема такова: как передавать String между классами я и так знаю, но в виджет классе AS не дает мне этого сделать)
Помогите, а
Есть пример получения данных:
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
public class ListViewAdapter extends BaseAdapter {
 
    // Declare Variables
    Context context;
    LayoutInflater inflater;
    ArrayList<HashMap<String, String>> data;
    ImageLoader imageLoader;
    HashMap<String, String> resultp = new HashMap<String, String>();
 
    public ListViewAdapter(Context context,
                           ArrayList<HashMap<String, String>> arraylist) {
        this.context = context;
        data = arraylist;
        imageLoader = new ImageLoader(context);
    }
 
    @Override
    public int getCount() {
        return data.size();
    }
 
    @Override
    public Object getItem(int position) {
        return null;
    }
 
    @Override
    public long getItemId(int position) {
        return 0;
    }
 
    public View getView(final int position, View convertView, ViewGroup parent) {
        // Declare Variables
        TextView text;
        TextView country;
        TextView population;
        ImageView flag;
 
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
        View itemView = inflater.inflate(R.layout.listview, parent, false);
        // Get the position
        resultp = data.get(position);
 
        // Locate the TextViews in listview_item.xml
        text = (TextView) itemView.findViewById(R.id.title);
        //country = (TextView) itemView.findViewById(R.id.country);
        // population = (TextView) itemView.findViewById(R.id.population);
 
        // Locate the ImageView in listview_item.xml
 
        flag = (ImageView) itemView.findViewById(R.id.flag);
 
        // Capture position and set results to the TextViews
        text.setText(Html.fromHtml(resultp.get(TwoActivityJSON.TITLE)));
        //country.setText(resultp.get(TwoActivityJSON.COUNTRY));
        // population.setText(resultp.get(TwoActivityJSON.POPULATION));
        // Capture position and set results to the ImageView
        // Passes flag images URL into ImageLoader.class
        imageLoader.DisplayImage(resultp.get(TwoActivityJSON.FILENAME), flag);
        // Capture ListView item click
        itemView.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View arg0) {
                // Get the position
                resultp = data.get(position);
                Intent intent = new Intent(context, SingleItemView.class);
                Intent intent2 = new Intent(context, widget_activity.class);
                // Pass all data rank
                intent.putExtra("title", resultp.get(TwoActivityJSON.TITLE));
 
                // Pass all data country
                intent.putExtra("text", resultp.get(TwoActivityJSON.TEXT));
                // Pass all data population
                //intent.putExtra("anouns",resultp.get(MainActivity.POPULATION));
                // Pass all data flag
                intent.putExtra("filename", resultp.get(TwoActivityJSON.FILENAME));
                // Start SingleItemView Class
                context.startActivity(intent);
 
 
            }
        });
        return itemView;
    }
}
И есть widgetclass, в котором нужно получить TITLE и FILENAME желательно
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
public class widget_activity extends AppWidgetProvider {
        final String LOG_TAG = "myLogs";
 
        @Override
        public void onEnabled(Context context) {
                super.onEnabled(context);
                Log.d(LOG_TAG, "onEnabled");
                AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
                Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
                alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000*60*15, pendingIntent);
 
 
        }
 
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                             int[] appWidgetIds) {
 
                super.onUpdate(context, appWidgetManager, appWidgetIds);
                Log.d(LOG_TAG, "onUpdate " + Arrays.toString(appWidgetIds));
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd");
                SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("MMMM");
                String strTime1 = simpleDateFormat1.format(new Date());
                String strTime = simpleDateFormat.format(new Date());
                RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
                views.setTextViewText(R.id.textView, strTime);
                views.setTextViewText(R.id.textView1, strTime1);
 
 
                appWidgetManager.updateAppWidget(appWidgetIds, views);
        }
 
        @Override
        public void onDeleted(Context context, int[] appWidgetIds) {
                super.onDeleted(context, appWidgetIds);
                Log.d(LOG_TAG, "onDeleted " + Arrays.toString(appWidgetIds));
        }
 
        @Override
        public void onDisabled(Context context) {
                super.onDisabled(context);
                Log.d(LOG_TAG, "onDisabled");
                AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
                Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
                alarmManager.cancel(pendingIntent);
        }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2016, 10:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение String из другого класса в Activity widget (Программирование Android):

Функция activity из другого класса - Программирование Android
Есть главная activity и создаю класс для отрисовки графики: Activity: public class General extends Activity { @Override ...

Доступ к элементам Activity из другого класса - Программирование Android
Есть Activity, в её классе создаю экземпляр другого класса twoclass tw = new twoclass(); tw.start(MainActivity.this); и запускаю ...

Как передать данные в Activity из другого класса - Программирование Android
При нажатии на кнопку, создается активити orgAdapter = new OrgAdapter(this, orgs); GridView gridView = (GridView)...

Widget + activity - Программирование Android
Добрый день!!! Создаю простенький виджет-диктофон и кнопка для открытия активити с настройками. При нажатии на кнопку &quot;rec&quot; в каталоге...

Изменение layout-элементов одного activity из другого activity - Программирование Android
Здравствуйте! Я хочу изменить размер или цвет текста TextView в одном activity из второго activity, каким образом мне можно это...

Из одного Activity получить значение другого Activity - Программирование Android
Запускаю активити: public class MainActivity extends Activity { ... ... Intent intent = new Intent(getBaseContext(),...

15
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
16.08.2016, 11:06 #2
quadenes, используй SharedPreferences.
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 11:15  [ТС] #3
Mikalai, там производится работа с постоянно меняющимся текстом. Кэш приложения не будет забиваться?
0
Pablito
2548 / 2030 / 633
Регистрация: 12.05.2014
Сообщений: 7,148
Завершенные тесты: 1
16.08.2016, 11:23 #4
используй https://github.com/greenrobot/EventBus
ваш кэп
1
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 11:25  [ТС] #5
Паблито, ого, спасибо)
0
Pablito
2548 / 2030 / 633
Регистрация: 12.05.2014
Сообщений: 7,148
Завершенные тесты: 1
16.08.2016, 11:26 #6
вот просто так, без проверки, как это работает, работает ли вообще?
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 11:29  [ТС] #7
Паблито, а блин...
Прочитал, не прокатит.

Prepare subscribers: Register your subscriber (in your onCreate or in a constructor):
eventBus.register(this);

В activity_widget нет OnCreate
Но все равно попробую
0
Pablito
2548 / 2030 / 633
Регистрация: 12.05.2014
Сообщений: 7,148
Завершенные тесты: 1
16.08.2016, 11:30 #8
эта строчка может быть где угодно, главное что бы она выполнилась
0
fraley
109 / 109 / 42
Регистрация: 24.05.2015
Сообщений: 324
16.08.2016, 12:22 #9
Чисто из любопытства - а это вообще нормально в адаптере к каждому view присобачивать OnClickListener?
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 12:26  [ТС] #10
fraley, да.
Там при нажатии появляется подробный текст
0
Pablito
2548 / 2030 / 633
Регистрация: 12.05.2014
Сообщений: 7,148
Завершенные тесты: 1
16.08.2016, 12:31 #11
почему не один слушатель на всех?
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 12:34  [ТС] #12
Паблито, скажи про какой кусок кода? А то не могу понять
0
Pablito
2548 / 2030 / 633
Регистрация: 12.05.2014
Сообщений: 7,148
Завершенные тесты: 1
16.08.2016, 12:55 #13
из кода в первом сообщении, строка 63 и дальше
для каждого итема в ListView создается свой слушатель
500 итемов - 500 слушателей, жирновато и не по феншую
0
fraley
109 / 109 / 42
Регистрация: 24.05.2015
Сообщений: 324
16.08.2016, 13:05 #14
Цитата Сообщение от quadenes Посмотреть сообщение
fraley, да.
Там при нажатии появляется подробный текст
listview onitemclicklistener?
0
quadenes
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 14:06  [ТС] #15
Паблито, ааа
Ну по факту у меня там 20 итемов.
А есть вариант оптимизировать?

Добавлено через 29 секунд
fraley, ага
0
16.08.2016, 14:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2016, 14:06
Привет! Вот еще темы с ответами:

Получение данных из другого класса - Программирование Android
Подскажите как решить проблему. У меня есть два класса разнесенных по разным файлам: ListFragment и DialogFragment. Cуть...

Доступ к БД из другого Activity. - Программирование Android
Очередной нубский вопрос. В главном активити есть dbHelper. Все хорошо. Хочу в одном активити показать результат запроса в виде...

Получить Activity другого приложения - Программирование Android
Подскажите пожалуйста, могу ли я из своего приложения получить Activity другого? Или же как можно из своего приложения запустить Activity...

Запуск Activity из другого apk - Программирование Android
Здравствуйте! Попытаюсь максимально собрать мысли в кучу и описать, то что мне надо. Есть скомпилированный apk файл без исходного кода,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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