С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50

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

16.08.2016, 10:59. Показов 1340. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.08.2016, 10:59
Ответы с готовыми решениями:

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

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

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

15
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
16.08.2016, 11:06
quadenes, используй SharedPreferences.
0
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 11:15  [ТС]
Mikalai, там производится работа с постоянно меняющимся текстом. Кэш приложения не будет забиваться?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
16.08.2016, 11:23
используй https://github.com/greenrobot/EventBus
ваш кэп
1
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 11:25  [ТС]
Паблито, ого, спасибо)
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
16.08.2016, 11:26
вот просто так, без проверки, как это работает, работает ли вообще?
0
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 11:29  [ТС]
Паблито, а блин...
Прочитал, не прокатит.

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

В activity_widget нет OnCreate
Но все равно попробую
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
16.08.2016, 11:30
эта строчка может быть где угодно, главное что бы она выполнилась
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
16.08.2016, 12:22
Чисто из любопытства - а это вообще нормально в адаптере к каждому view присобачивать OnClickListener?
0
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 12:26  [ТС]
fraley, да.
Там при нажатии появляется подробный текст
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
16.08.2016, 12:31
почему не один слушатель на всех?
0
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 12:34  [ТС]
Паблито, скажи про какой кусок кода? А то не могу понять
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
16.08.2016, 12:55
из кода в первом сообщении, строка 63 и дальше
для каждого итема в ListView создается свой слушатель
500 итемов - 500 слушателей, жирновато и не по феншую
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
16.08.2016, 13:05
Цитата Сообщение от quadenes Посмотреть сообщение
fraley, да.
Там при нажатии появляется подробный текст
listview onitemclicklistener?
0
2 / 2 / 1
Регистрация: 14.07.2015
Сообщений: 50
16.08.2016, 14:06  [ТС]
Паблито, ааа
Ну по факту у меня там 20 итемов.
А есть вариант оптимизировать?

Добавлено через 29 секунд
fraley, ага
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
16.08.2016, 14:18
я уже давно не пользовался листвью, но у него как минимум есть
listView.setOnItemClickListener();
куда можно передать слушатель
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2016, 14:18
Помогаю со студенческими работами здесь

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

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

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

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

Взаимодействие QWidget`s. Как измнить состояние widget MainWindow из другого класса?
Доброго времени суток. Суть такова: класс главного окна(MainWindow) формирует окно-&gt;виджеты, структура(слой-&gt;виджет-&gt;виджет...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru