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

Embarcadero - Мобильное приложение для Андроид - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Работа с уведомлениями http://www.cyberforum.ru/android-dev/thread1242504.html
Здравствуйте! Проблема в следующем: я создаю приложение для андройда, в которое иногда создает уведомления. Проблема в том, что при запуске уведомления, всегда создается новый activity, а хотелось бы, что бы если приложение активно, то работа продолжалась в том же activity, а не новом, а если приложение свернуто, то нажатие на уведомление его будило, а не создавало еще одно activity. Информация...
Программирование Android Загрузка изображения jpg.to Есть такой сервис — jpg.to. Про ссылке любое_слово.jpg.to отдает изображение. Как загрузить это изображение с помощью universal image loader в экземпляр класса Bitmap ? В лоб не вышло, там, по-моему, какие-то переадресации происходят и вылетает ошибка типа «не могу загрузить изображение любое_слово.jpg.to_расширение_экрана» http://www.cyberforum.ru/android-dev/thread1242491.html
Программирование Android Контакты Admob
Кто знает как связаться с поддержкой admob на прямую? По этой почте писал admob-publisher-payments@google.com скинули ссылку на справку..
Программирование Android Реализовать таймаут ожидания отклика от сервера во избежание краха приложения
Вообщем есть поток в котором выполняется вот такой кусок кода try { Document document = Jsoup.connect(link) .get(); } catch (IOException e) { e.printStackTrace(); } если вдруг интернет соединение прерывается на секунду и в это время пользователь инициирует парсинг, то приложение крашится. Пытался сделать...
Программирование Android Чтение данных из бд в listview http://www.cyberforum.ru/android-dev/thread1242285.html
Здесь listview с контекстным меню. В меню 2 пункта. По клику на пункт, запись из listview'a должна добавляться в определенную таблицу. package info.androidhive.tabsswipe; import java.util.ArrayList; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.support.v4.app.Fragment;
Программирование Android Список из Spinner Здравствуйте. Умею работать с Spinner, умею просто с ListView, но умею это делать по отдельность. Пробовал найти что то похожее, нашел только одну темутык, но там ничего хорошего не вычитал. Я хочу сделать список ListView из Spinner. Т.е. на каждую строку моего списка можно было бы жать и там открывался бы список с выбором. Помогите кто чем может, может даст путный материал или статейку. ... подробнее

Показать сообщение отдельно
Pir12345
0 / 0 / 0
Регистрация: 05.01.2014
Сообщений: 288
26.08.2014, 08:55  [ТС]     Embarcadero - Мобильное приложение для Андроид
UI, Вы не забыли про программу, хотел Вам напомнить.

Со своей стороны упростил код по предела, выкинул виртуальный листбокс

Unit1.cpp

C++
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
#include <fmx.h>
#include <algorithm>
//#include <windows.h>
#include <stdexcept>
 
#pragma hdrstop
 
#include "Unit3.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.fmx"
 
extern const int size = 7;
extern int MySleep;
int Data1;
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{ MyTerminated = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form2->ListBox1->Clear();
Form2->ListBox2->Clear();
calcThread_1 = new CalcThread(false);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
MyTerminated = false;
  //colorThread_1 = new ColorThread(false);
  //soundThread_1 = new SoundThread(false);
 
 // HMIDIOUT Out;
  DWORD Msg;
  //midiOutOpen(&Out,0,0,0,0);
  for( int i = 0; i < Form2->ListBox1->Count ; i++ )
    {
    for( int j = 1; j<8; j++ )
      {
      Data1 = StrToInt(Form2->ListBox1->Items->Strings[i].SubString(j,1));
      switch( StrToInt(Form2->ListBox1->Items->Strings[i].SubString(j,1)) )
        {
        case 1: { Form2->Fill->Color= TAlphaColor (claRed);
                   //Msg = (0x90 + (60 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 2: { Form2->Fill->Color= TAlphaColor (claOrange);
                  // Msg = (0x90 + (62 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 3: { Form2->Fill->Color= TAlphaColor (claYellow);
                   //Msg = (0x90 + (64 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 4: { Form2->Fill->Color= TAlphaColor (claGreen);
                   //Msg = (0x90 + (65 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 5: { Form2->Fill->Color= TAlphaColor (claDeepskyblue);
                   //Msg = (0x90 + (67 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 6: { Form2->Fill->Color= TAlphaColor (claBlue);
                   //Msg = (0x90 + (69 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 7: { Form2->Fill->Color= TAlphaColor (claDarkorchid);
                   //Msg = (0x90 + (71 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                   }
                   break;
        }
 
      //Form2->Repaint();
 
      Sleep( MySleep );
      Application->ProcessMessages();
      //if( MyTerminated )
        //goto halt;
      }
 
    }
//halt:
//OnResetColor();
//midiOutClose(Out);
 }
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{
MyTerminated = true;
  //colorThread_1->Terminate(); //new ColorThread(true);
  //soundThread_1->Terminate(); //new SoundThread(true);
  //midiOutClose(Out);
  //OnResetColor();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Edit2Change(TObject *Sender)
{
if(Edit2->Text.Length()>0)
MySleep = StrToInt(Edit2->Text);
}
Unit2.cpp

C++
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
#pragma hdrstop
 
#include "Unit3.h"
#include "Unit2.h"
#include <algorithm>
#include <memory>
//#include <windows.h>
#include <stdexcept>
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
int i = 0, j = 0;
const int size = 7;
int MySleep = 300;
 
void __fastcall CalcThread::Execute()
{
 
  String indexes[size] =
    {"1", "2", "3", "4", "5", "6", "7"};
 
  all = new TStringList();
  do
    {
    String s = "";
    for (int i = 0; i < size; i++)
      s += indexes[i] + (i < size - 1 ? "," : "");
    all->Add(s);
    }
    while (std::next_permutation(indexes, indexes + size));
 
  for (int i = 0; i < all->Count / 6; i++)
    {
    all->Exchange(6*i + 2, 6*i + 4);
    all->Exchange(6*i + 3, 6*i + 5);
    all->Exchange(6*i + 4, 6*i + 5);
    }
 
  Synchronize( SyncCalcThread );
 
  delete all;
}
//---------------------------------------------------------------------------
void __fastcall CalcThread::SyncCalcThread()
{
  Form2->ListBox2->Items->Assign(all);
              { if (Form2->RadioButton3->IsChecked == true)
                   {
                    all->Exchange(0, 0);
                   }
                if (Form2->RadioButton4->IsChecked == true)
                   {    all->Exchange(1, 0);
                   }
                if (Form2->RadioButton5->IsChecked == true)
                   {    all->Exchange(2, 0);
                   }
                if (Form2->RadioButton6->IsChecked == true)
                   {    all->Exchange(3, 0);
                   }
                if (Form2->RadioButton7->IsChecked == true)
                    {   all->Exchange(4, 0);
                    }
                if (Form2->RadioButton8->IsChecked == true)
                    {   all->Exchange(5, 0);
                    }
                }
 
       /*
      switch (Form2->RadioGroup1->ItemIndex)
     {
        case 0:all->Exchange(0, 0);
           break;
        case 1:all->Exchange(1, 0);
           break;
        case 2:all->Exchange(2, 0);
           break;
        case 3:all->Exchange(3, 0);
           break;
        case 4:all->Exchange(4, 0);
           break;
        case 5:all->Exchange(5, 0);
           break;
    }
            */
 
  String userData = Form2->Edit1->Text;
  Form2->ListBox1->Items->BeginUpdate();
 
  std::auto_ptr<TStringList>L(new TStringList);
 
//Ïðÿìîé Г°Г*Г±Г·ГҐГІ
  if(Form2->CheckBox1->IsChecked == true)
    {
    for (int i = 0; i < all->Count; i++)
      {
      L->Clear();
      String s = "";
      L->CommaText = all->Strings[i];
      for (int j = 0; j < L->Count; j++)
        s += userData[StrToInt(L->Strings[j])];
      Form2->ListBox1->Items->Add(s);
      }
    Form2->ListBox1->Items->EndUpdate();
    }
 
//ГЋГЎГ°Г*ГІГ*ûé Г°Г*Г±Г·ГҐГІ
  if(Form2->CheckBox2->IsChecked == true)
    {
     for (int i=0;i < (all->Count / 2); i++)
    //for (int i = 0; i < all->Count; i++)
      {
      all->Exchange(i, all->Count-i-1);
      L->Clear();
      String s = "";
      L->CommaText = all->Strings[i];
      for (int j = 0; j < L->Count; j++)
        s += userData[StrToInt(L->Strings[j])];
      Form2->ListBox1->Items->Add(s);
      }
    Form2->ListBox1->Items->EndUpdate();
    }
 
}
Проект скомпилировался, сформировался .apk, запустился на Андроиде, но сильно долго выполняется расчет CalcThread и почему то выводятся данные только в lisbox2, lisbox1- пустое. Соответственно дальше по кнопке Button2 программа не запускается.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru