Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587

Может ли быть два виджета в одном проекте где у каждого будет своя активити настроек?

12.11.2012, 16:08. Показов 2740. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался так сделать, все везде написал и в provider и в manifest, но все равно при добавлении второго виджета вылетает активити первого виджета
Может так нельзя делать?
Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2012, 16:08
Ответы с готовыми решениями:

Как создать базу данных для сайта,где может быть много значений в одном поле
Может немного глуповатый вопрос,но все же... Есть база данных и сайт,допустим у пользователя сайта в графе интересы могут быть несколько...

Как в одном проекте сделать два пространства имен?
сделал так. но выводит только то что в namespace Laba, a arifm не выводит в консоль using System; using System.Collections.Generic; ...

Как использовать два winsock контрола в одном проекте
Не получается работать с двумя winsock контролами, второй не подключается.

11
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.11.2012, 16:15
чем мотивирует свой вылет активити первого виджета?
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
12.11.2012, 16:36  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
чем мотивирует свой вылет активити первого виджета?
Не совсем понял вопрос, извините.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.11.2012, 16:58
если вылетает, значит на это есть причина и она написана в логах.
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
12.11.2012, 17:22  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
если вылетает, значит на это есть причина и она написана в логах.
Прошу прощения. Вылетает не значит аварийно завершается, а просто открывается вместо нужного активити. Если вы это и имели ввиду, то где искать логи? apk сразу устанавливается на телефон

Добавлено через 19 минут
А что означает содержание файла lint.xml?

Java
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="ObsoleteLayoutParam">
        <ignore path="res\layout\activity_preferences.xml" />
    </issue>
    <issue id="UselessParent">
        <ignore path="res\layout\widget_layout.xml" />
    </issue>
</lint>
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.11.2012, 18:46
Цитата Сообщение от dubok79 Посмотреть сообщение
а просто открывается вместо нужного активити.
значит вы указали открывать это активити вместо нужного.
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
12.11.2012, 18:56  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
значит вы указали открывать это активити вместо нужного.
А где это указывается? В манифесте?
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
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <receiver
            android:name=".WidgetActivity"
            android:label="@string/widget_title" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
 
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_provider" />
        </receiver>
 
        <activity
            android:name=".PreferencesActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/widget_preferences_title"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
            </intent-filter>
        </activity>
 
        <receiver
            android:name=".Widget_1x1_Activity"
            android:label="@string/widget_1x1_title" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
 
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_1x1_provider" />
        </receiver>
 
        <activity
            android:name=".Preferences_1x1_Activity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/widget_preferences_title"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
            </intent-filter>
        </activity>
Java
1
2
3
4
5
6
7
8
9
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minHeight="64dp" 
    android:minWidth="294dp"
    android:updatePeriodMillis="3600000"
    android:initialLayout="@layout/widget_layout"
    android:focusable="true" 
    android:configure=".Preferences_Activity"
    android:previewImage="@drawable/widget_preview_image">
</appwidget-provider>
Java
1
2
3
4
5
6
7
8
9
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minHeight="64dp" 
    android:minWidth="64dp"
    android:updatePeriodMillis="3600000"
    android:initialLayout="@layout/widget_1x1_layout"
    android:focusable="true" 
    android:configure=".Preferences_1x1_Activity"
    android:previewImage="@drawable/widget_1x1_preview_image">
</appwidget-provider>
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.11.2012, 19:04
покажите еще код обеих активитей.
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
13.11.2012, 06:05  [ТС]
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
package com.daa.widget;
 
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.widget.RemoteViews;
import android.widget.Toast;
 
public class WidgetActivity extends AppWidgetProvider {
    public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
    public static String URI_SCHEME = "ABC";
    
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        final int N = appWidgetIds.length;
        for (int i = 0; i < N; i++) {
            int appWidgetId = appWidgetIds[i];
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }
    }
 
    public static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
 
        RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        updateViews.setTextViewText(R.id.line_info_1, "Hello"); 
        
        Intent configIntent = new Intent(context, PreferencesActivity.class);
        configIntent.setAction(ACTION_WIDGET_CONFIGURE);
        Uri data = Uri.withAppendedPath(Uri.parse(URI_SCHEME + "://widget/id/"),String.valueOf(appWidgetId));
        configIntent.setData(data);
        PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
        updateViews.setOnClickPendingIntent(R.id.widget_imageview, configPendingIntent);
        appWidgetManager.updateAppWidget(appWidgetId, updateViews);
    }
 
}
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
package com.daa.widget;
 
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.widget.RemoteViews;
import android.widget.Toast;
 
public class WidgetActivity extends AppWidgetProvider {
    public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
    public static String URI_SCHEME = "ABC";
    
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        final int N = appWidgetIds.length;
        for (int i = 0; i < N; i++) {
            int appWidgetId = appWidgetIds[i];
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }
    }
 
    public static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
 
        RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_1x1_layout);
        updateViews.setTextViewText(R.id.widget_1x1_line_info, "Hello");    
        
        Intent configIntent = new Intent(context, Preferences_1x1_Activity.class);
        configIntent.setAction(ACTION_WIDGET_CONFIGURE);
        Uri data = Uri.withAppendedPath(Uri.parse(URI_SCHEME + "://widget/id/"),String.valueOf(appWidgetId));
        configIntent.setData(data);
        PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
        updateViews.setOnClickPendingIntent(R.id.widget_1x1_imageview, configPendingIntent);
        appWidgetManager.updateAppWidget(appWidgetId, updateViews);
    }
 
}
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
13.11.2012, 13:24
вы вместо активитей дважды скопировали код виджета.
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
14.11.2012, 12:11  [ТС]
Пока вставлял код активитей, нашел ошибку:
вот в этой строке setContentView(R.layout.activity_preferences); указал не тот layout

P.S. будут ли какие либо проблемы, если в одном проекте у двух активитей будут контролы (View) с одинаковыми ид?

Добавлено через 2 часа 42 минуты
Как то все равно непонятно и глючно работает.
Новый виджет размером 1х1 добавляется, открывается нужое активити его настроек, но после закрытия активити обновление виджета идет кодом из большего виджета. Далее если обновить все виджеты то маленькие считывают настройки откуда нужно и все хорошо. по тапу на нем снова открывается нужное окно, но после его закрытия опять как с самого начала, мало того по тапу уже начинает открываться активити настроек большего виджета. Никак не пойму в чем дело

Добавлено через 19 минут
уфф... нашел , оказывается я вызывал функцию обновления виджета из другого кода .... безобразие
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
14.11.2012, 21:39
Цитата Сообщение от dubok79 Посмотреть сообщение
вот в этой строке setContentView(R.layout.activity_prefere nces); указал не тот layout
так и думал


Цитата Сообщение от dubok79 Посмотреть сообщение
будут ли какие либо проблемы, если в одном проекте у двух активитей будут контролы (View) с одинаковыми ид?
нет
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2012, 21:39
Помогаю со студенческими работами здесь

Обновление без ChangeTracker'a или два фреймворка в одном проекте?
Как оптимально реализовать построение запросов на частичное обновление данных, если нет дефолтного контроля изменений со стороны...

Может ли в одном классе быть несколько конструкторов?
Доброго времени суток. Программируя на питоне, возникла потребность создать несколько конструкторов в одном классе. Может ли кто...

Как связать два cpp файла в одном проекте (visual studio 2010)
Есть два программы: одна создает файл.txt, вторая читает из него данные и выводит на экран. создает файл #include &lt;iostream&gt; ...

Как сделать, чтобы два проекта с разной кодировкой работали в одном объединённом проекте?
Добрый день подскажите есть два проекта в одном стоит многобайтовая кодировка в другом юникод, по отдельности все нормально компилируется...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в полярных координатах. Написать функцию для...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru