Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Spinner, не работает setPrompt

не работает функция setPrompt, как иначе здесь можно установить значения типа "Выберите нужную страну"
Ответ: Почитай ))
Вопрос: Distance Between two points

Привет, подскажите как правильно реализовать вывод дистанции между двумя точками. Сделал по примеру а приложение крашится.
Java(TM) 2 Platform Standard Edition 5.0
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
public class General extends Activity implements View.OnClickListener {
 
    ArrayList LTDlist = new ArrayList();
    ArrayList LNGlist = new ArrayList();
    double lngTest, ltdTest;
    DatabaseHelper sqlHelper;
    SQLiteDatabase db;
    Cursor userCursor;
    EditText editText;
    TextView totalTagImageView, totalDistanceView;
    Button button;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.general);
 
        button = (Button) findViewById(R.id.button);
        totalTagImageView = (TextView) findViewById(R.id.TagImageView);
        totalDistanceView = (TextView) findViewById(R.id.distanceView);
        editText = (EditText) findViewById(R.id.editTex);
        sqlHelper = new DatabaseHelper(getApplicationContext());
        button.setOnClickListener(this);
    }
 
    @Override
    protected void onResume() {
        super.onResume();
 
        db = sqlHelper.getReadableDatabase();
        userCursor = db.query("geotable", null, null, null, null, null, null);
 
        if (userCursor.moveToFirst()) {
 
            int lngColIndex = userCursor.getColumnIndex("lng");
            int latColIndex = userCursor.getColumnIndex("lat");
 
            do {
 
                lngTest = userCursor.getDouble(lngColIndex);
                ltdTest = userCursor.getDouble(latColIndex);
 
                LTDlist.add(ltdTest);
                LNGlist.add(lngTest);
 
            }
            while (userCursor.moveToNext());
        } else
            userCursor.close();
 
 
        }
 
 
    @Override
    public void onClick(View v) {
 
        switch (v.getId()) {
            case R.id.button:
            int i = 0;
                Location locationA = new Location("point A");
 
                locationA.setLatitude((Double) LTDlist.get(i));
                locationA.setLongitude((Double) LNGlist.get(i));
 
                Location locationB = new Location("point B");
 
                locationB.setLatitude((Double) LTDlist.get(i+1));
                locationB.setLongitude((Double) LNGlist.get(i+1));
 
                float distance = locationA.distanceTo(locationB);
 
                float totalDistance = distance;
                editText.setText(totalDistance);
 
                break;
            default:
                break;
 
        }
    }
 
}
лог ошибки: FATAL ERROR на эти строчки
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
                
float totalDistance = distance;
editText.setText(totalDistance);
Студия предлагает исправить эту строку на
Java(TM) 2 Platform Standard Edition 5.0
1
editText.setText((int) totalDistance);
Но от краша это не спасает
Ответ: Andrew9, привет!
Если ещё актуально, то не забывай, что там выводится строка. Поэтому можно, например, так:
editText.setText(String.valueOf(totalDistance));
Но лучше через форматирование строки (из вещественного числа).
Вопрос: Перегрузка функций не срабатывает

Добрый день.
Разбираюсь в Андроид Студио с одним проектом. И наткнулся на странную особенность: есть базовое активити. В нем функция:
Java(TM) 2 Platform Standard Edition 5.0
1
protected boolean sendToCrm() { Log.e(TAG, "sendToCrm() dont override!!");  return false; } 
У етого активити есть наследник, где єта функция переопределена:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
@Override
    protected boolean sendToCrm() {
        Log.i(TAG, "sendToCrm" );
        if (cardData == null) {
            Log.e(TAG, "onCreate; startLoggingLocation; E: cardData == null" );
            return false;
        }
        return cardData.sendToCrm(this);
    }
Так вот, когда запускается проект на слабеньком китайце (API 10), в наследнике переопределенная ф-ция не срабатывает и я вижу в логе : "sendToCrm() dont override!!" Как только подсоединяю планшет (API 19), все работает по всем правилам ООП и вызывается функция-потомок. В чем проблема? Спасибо.
Ответ: Нашел причину. Она оказалась не в перегрузке ф-ций, а в манифесте.
Проект состоял из библиотеки со своим манифестом и приложения со своим.
Манифест библиотеки со своим активити- лаунчером:
Кликните здесь для просмотра всего текста

Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
<application
        android:name=".BaseBusinessCardReaderApplication"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        <service android:name=".RecognitionService" />
        <service
            android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService"
            android:enabled="true" />
        <activity
            android:name=".MainBaseActivity"
android:label="@string/app_name_base"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>[/JAVA]


А в манифесте приложения было свое активити - LAUNCHER (отличное от библиотечного)
Кликните здесь для просмотра всего текста

Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 <application
        android:name="..........BaseBusinessCardReaderApplication"
        android:label="@string/app_name"
        <service android:name=".............abbyy.ocr4.RecognitionService" />
        <service android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService" android:enabled="true" />
        <activity
            android:name="...........MainBaseCrmActivity"
            android:label="@string/app_name" 
            android:windowSoftInputMode="stateHidden|adjustResize"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>  

При компиляции, Активити-LAUNCHER библиотеки, замещалась Активити-LAUNCHERом приложения и все работало. Да и теперь работает на новых девайсах. А вот на старых устройствах ета же програма почему-то работает не правильно. Тоесть приложение запускается со стартового активити, прописанного в библиотеке, а не в приложении. Потому я, поначалу, и решил что ф-ции не перегружаются. Приложение стартовало с активити предка. Стоило мне в библиотеке поставить тот же Активити-LAUNCHER, что и в приложении, как все заработало.
Вопрос: Как сделать так, чтобы Service работал после закрытия программы

Здравствуйте!
Никак не могу разобраться, как сделать так, чтобы Service работал после закрытия программы.
Вот что я написал в манифесте:
XML
1
<service android:name=".MyService" android:enabled="true" android:exported="true"/>
В самом класса выполняю все действия в отдельном потоке, есть предположения, что нужно Service выполнять в новом процессе, но я не знаю, как это сделать. Ещё наткнулся вот и никак не могу понять, что здесь необычного.
Заранее спасибо!
Ответ: А смысл показывать весь код сразу?
Ведь это основная функция, а в MyRun производятся расчеты в цикле while(true), а функции onCreate нет, onBind возвращает null.
Вопрос: Построение графиков различных функций на Android

Ребята..помогите пожалуйста..
Взял себе тему курсовой построение графиков различных функций на android
В прошлой курсовой сделал хороший справочник по физике..думал и с этой темой справлюсь..но курсовую скоро сдавать а я сижу на месте..нашёл в интернете библиотеки для графиков AChartEngine,aFreeChart,Androidplot,GraphView ...в мануалах и примерах этих библиотек нет именно информации как строить графики по функциям..там только по значениям...МОЖЕТ КТО ЗНАЕТ КАК МНЕ ПОСТРОИТЬ ГРАФИК ПО ФУНКЦИИ..МОЖЕТ КАКОЙ-ТО ОБЩИЙ МЕТОД ЕСТЬ..ИЛИ ЧТО-НИБУДЬ ЕЩЁ..ХОТЬ КАКУЮ НАВОДКУ ДАЙТЕ ПОЖАЛУЙСТА..ВЫРУЧИТЕ!!!
Ответ: 1. тебе надо написать парсер строки с функцией во что-то, что сможет по подставленному значению х посчитать y, ну что-то подобное если не ошибаюсь курсе на 2м было у меня, в любом случае задача тривиальная
2. затем на основе интрвала какого-то посчитать массив пар [х,у]
3. используя библиотеку отрисовать эти х и у
4. profit. пьем кофе, гладим котят
Вопрос: Как работать с файлом .db?

У меня есть права рут на телефоне. Я копировал файл .db приложения из data/data на SD Card и как я теперь могу программно прочитать содержимое этого файла??Обычно через Cursor или как?? Я просто знаю как при помощи SQLiteOpenHelper создать базу данных SQLite и через Cursor в приложении ее прочитать. Так вот а если есть просто файл db приложения(доступ к нему есть), данные там не в зашифрованном виде и я хочу в своем приложении открыть и прочитать этот файл. Что для этого нужно делать ?? Как открыть для чтения этот db файл(какую функцию использовать) и как потом прочитать данные. Можете подсказать идею?? И как можно вообще открыть db файл, чтобы посмотреть что там есть?? Какой просмотрщик для этого использовать??
Ответ: yura91, да можете, но что бы работать с ним вы должны его скопировать в папку с БД своего приложения
Вопрос: Передать данные в работающий thread из другого thread

Есть 2 потока запущенные разными классами и из потока А нужно сообщить потоку Б что бы он запустил свою определенную функцию. Ссылки на объект естественно нет (. Может есть какие то средства общения потоков, кроме внешних хранилищ?
Ответ: Паблито, Спс за ссылку, помогло - когда разобрался).
Но не совсем понял о модах на слушатель:
Java
1
1 @Subscribe(threadMode = ThreadMode.POSTING)
- способ для того же потока в котором происходит событие?
Java
1
2 @Subscribe(threadMode = ThreadMode.MAIN)
- понятно для UI
Java
1
3 @Subscribe(threadMode = ThreadMode.BACKGROUND)
- для любого Tread?
Java
1
4 @Subscribe(threadMode = ThreadMode.ASYNC)
- для Asynctask, AsyncLoader ... ?

И еще интересно на снове чего EventBus работает, что лежит в его основе может Intent, broadcastreceiver ?
Вопрос: Парсер математических функций на java

Всех приветствую. Я хочу написать программу под android на java для работы с математическими функциями,но самое сложное,это написать парсер,который будет пытаться разобрать строку с функцией. При этом,стоит учитывать,что функции могут быть сложными,т.е выражение может иметь несколько скобок. Например,хотелось бы,чтобы парсер мог разобрать примерно такую строку:
y=x^(log(2*atan(x^2)/4*asin(1/2+0.5)))*tan(log(x^2))
При этом хотелось бы,чтобы даже если в строке не написано y=,парсер всё равно разбирал эту строку и возвращал результат вычисления выражения. Очень не хотелось бы писать парсер с нуля,поэтому у меня вопрос к форумчанам,может уже написан готовый парсер математических функций на java или другом языке? Заранее всех благодарю за помощь
Ответ:
Сообщение от КАВ
не только видя подстроку sqrt,но и видя символ √
В чем проблема заменить после парсинга с editText символа √ на sqrt.

Добавлено через 2 минуты
Пример реализации собственной функции:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function avg = new Function("avg", 4) {
 
    @Override
    public double apply(double... args) {
        double sum = 0;
        for (double arg : args) {
            sum += arg;
        }
        return sum / args.length;
    }
};
double result = new ExpressionBuilder("avg(1,2,3,4)")
        .function(avg)
        .build()
        .evaluate();
 
double expected = 2.5d;
assertEquals(expected, result, 0d);
Вопрос: функция currentTimeMilis

функция currentTimeMilis() возвращает текущее время в миллисекундах какой страны? И она вычисляет время относительно Гринвича(начало отсчета времени)?
Ответ: Ну то есть если я хочу передать в функцию set() AlarmManagera значение времени как параметр его запуска(но это время соответствует, например 18.05.2016 10 часов утра), то как мне вычислить правильно какое количество миллисекунд я должен передать при помощи currentTimeMilis()? Или как можно передать проще в set() это время которое я говорю, чтобы именно тогда запустился alarm?
Вопрос: GCM не работает в моей программе

Здравствуйте! Задался такой стандартной задачей, как рассылка новостных push-уведомлений всем пользователям приложения. Стал использовать для этого GCM Topic Messaging. Всё сделал по документации и , но приложение корректно не работает. Получается так, что регистрация проходит успешно, но уведомления просто попросту не приходят в приложение, хотя post-запрос на сервер мой точно правильный, проблема очевидно со стороны клиента. Никогда не сталкивался со столь странной проблемой - всё по коду совпадает с образцом и документацией, но работает некорректно. Тестировал я на своём реальном телефоне, "отправив" после установки push, а также на BlueStacks. Коды на Stack Overflow, где мне никто не ответил - .

Добавлено через 2 минуты
Также я заметил, что моё приложение в разделе "Управление приложениями" системных настроек на находится в работающих сервисах.

Добавлено через 54 секунды
Я уже как 3 дня бесполезно пытаюсь найти решение это странной проблемы
Ответ: Alex Andro, попробуй использовать parse, настраивается за 10 минут, все работает без проблем. другие сервисы не смотрел, т.к. нет необходимости