На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Кнопка назад
    Задача заключаетса сложить две ячейки каждая которая находитьса На разной форме, а на третей форме кнопка с обработчиком и ячейкой вывода результата. Но проблема токова что при обртном возвращении на форму в ячейках пустота, а необходимо чтоб оставались данные в ячейках потому как буду ссылатса на них из других форм. Заранее всем спасибо
      Какая-то не правильная задача. Вам нужно отдельно организовать сохранение значений ячеек. Возможно поможет обработка onSaveInstance/OnRestoreInstace, иначе сохранять куда-то значения в onPause/onResume (например в SharedSettings).
        Можно передавать данные между активити через интенты:

        http://developer.android.com/reference/and...roid.os.Bundle)
        http://developer.android.com/reference/and...tml#getExtras()

        Но ваще согласен, задача слегка странная. Если каждая активити отвечает за свою переменную, то я бы лучше организовал класс-хранилище с сингтоном для этих самых переменных, и брал их оттуда, когда нужно.
        Сообщение отредактировано: Хрен -
          Ребят вот нацарапал проэкт. Активити одна а форм будит много
          Прикреплённый файлПрикреплённый файлProba.rar (56,07 Кбайт, скачиваний: 134)
            ExpandedWrap disabled
              public class ProbaActivity extends Activity {
                  /** Called when the activity is first created. */
                  @Override
                  public void onCreate(Bundle savedInstanceState) {
                      super.onCreate(savedInstanceState);
               
                      requestWindowFeature(Window.FEATURE_NO_TITLE);//----������� ���������
                      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,//---- ������ �����
                              WindowManager.LayoutParams.FLAG_FULLSCREEN);
               
                      setContentView(R.layout.main);
                  }
                  public void but_vuxod_Click (View v){
                      new AlertDialog.Builder(this)
                      .setTitle("Ask?")
                      .setMessage("message?")
                      .setNegativeButton(android.R.string.no, null)
                      .setPositiveButton(android.R.string.yes, new OnClickListener() {
                          public void onClick(DialogInterface arg0, int arg1) {
                              System.exit(0);
                          }}).create().show();
                  }
                  public void slog_Click (View v){
                      EditText a = (EditText)findViewById(R.id.editText_1_id);
                      EditText b = (EditText)findViewById(R.id.editText_2_id);
                      EditText c = (EditText)findViewById(R.id.editText1_otv_id);
                      float aot = Float.parseFloat(a.getText().toString());
                      float bot = Float.parseFloat(b.getText().toString());
                      float cot=aot+bot;
                      c.setText(""+cot);
               
                  }
                  public void but_otv_Click (View v){
                      setContentView(R.layout.otvetnaia);
                  }
               
                  public void but_perv_Click (View v){
                      setContentView(R.layout.pervoia);
                  }
                  public void but_vtor_Click (View v){
                      setContentView(R.layout.vtoraia);
                  }
                  public void but_nazad_Click (View v){
                      setContentView(R.layout.main);
                  }
                  public boolean onKeyDown(int keyCode, KeyEvent event){
                      if(keyCode==KeyEvent.KEYCODE_BACK){
                          setContentView(R.layout.main);
                          return true;
                      }
                      return super.onKeyDown(keyCode, event);
                  }
              }

            Вот это
            Цитата
            public void but_otv_Click (View v){
            setContentView(R.layout.otvetnaia);
            }

            public void but_perv_Click (View v){
            setContentView(R.layout.pervoia);
            }
            public void but_vtor_Click (View v){
            setContentView(R.layout.vtoraia);
            }
            public void but_nazad_Click (View v){
            setContentView(R.layout.main);
            }

            Абсолютно и совершенно неправильно. setContectView не предназначен для смены разментки в процессе выполнения активити. Собственно я за 3 года разработки для андроида никогда его не использовал ни где кроме как в onCreate. Хотите сменить содержимое активити - запускайте другую активити. Потому у вас ничего не сохраняеться.
              Для каждой формі должна біть своя активти. Смотрите примеры в Android SDK API Demos:
              - App/Activity/Forwarding
              - App/Activity/Reorder activities
              Сообщение отредактировано: mrco -
                Ну этот я порядок чтобы необходимо делать с формой свой активрти, а вот чтоб в ячейках быдиданные их необходимо куда-то сохратить а при вызове формы их загружать
                  Пробывал через интенты чёт не получаетса, подскажите
                    Цитата jaroslav.zp.ua @
                    Пробывал через интенты чёт не получаетса, подскажите

                    Что не получается? И как может не получится? Добавил в интент, поймал в он криейте, всё.
                      Есть идея через Preference только пример у меня для одной ячейки, а на две не получаетса, подскажите как добавить
                      Вот код
                      public void Click_save (View v){
                      saveText();
                      }
                      public void Click_lond (View v){
                      loadText();
                      }
                      void saveText(){
                      EditText etText = (EditText)findViewById(R.id.editText_id);
                      sPref=getPreferences (MODE_PRIVATE);
                      Editor ed=sPref.edit();
                      ed.putString(SAVED_TET, etText.getText().toString());
                      ed.commit();
                      Toast.makeText(this, "Текст сохранён", Toast.LENGTH_SHORT).show();
                      }
                      void loadText(){
                      EditText etText = (EditText)findViewById(R.id.editText_id);
                      sPref=getPreferences (MODE_PRIVATE);
                      String savedText =sPref.getString(SAVED_TET, "");
                      etText.setText(savedText);

                      Toast.makeText(this, "Текст загружен", Toast.LENGTH_SHORT).show();
                      }
                        Слушай, вот что тебе мешает сделать класс
                        ExpandedWrap disabled
                          public class MyStorage {
                              static int m_cellInfo1;
                              static int m_cellInfo2;
                              static int m_cellInfo3;
                          }


                        и сохранять туда данные своих ячеек дабы потом их оттуда забрать? :)
                          Тоесть в void saveText и в void loadText() вместо etText запихнуть MyStorage????
                            Цитата jaroslav.zp.ua @
                            Тоесть в void saveText и в void loadText() вместо etText запихнуть MyStorage????

                            Нет. Отдельный класс просто сделай. Со статическими членами. И сохраняй туда значения ячеек.
                              Извени не понимаю наведи примерчик к моему. Плиззззз
                                jaroslav.zp.ua, зачем ты лезешь в мобайл? ты ж простейших вещей не шаришь. Читай про синглтон.
                                  Цитата Джонни @
                                  Читай про синглтон.

                                  Со статическими членами там даже синглтон не нужен. А в остальном согласен - книжку бы полистать....
                                    Та листал, просто начинающий. Я так понял m_cellInfo1 это тоже самое что и EditText etText = (EditText)findViewById(R.id.editText_id);
                                    Или как его записать в этот класс, немогу понять, или указать в классе что m_cellInfo1 это ячейкак. КАК???
                                      Всё разобрался *Хрен* болььшое спасибо ты прав всё элементарно. Вот проверь правельно

                                      public class SavingActivity extends Activity {

                                      SharedPreferences sPref;
                                      public static final String EXT_COLS = "cols";//------НАДОБЫЛО ЭТО ДОБАВИТЬ И ВСЁ
                                      public static final String EXT_ROWS = "rows";//----- И ЭТО


                                      public void onCreate(Bundle savedInstanceState) {
                                      super.onCreate(savedInstanceState);
                                      setContentView(R.layout.main);
                                      }
                                      public void Click_save (View v){
                                      saveText();
                                      }
                                      public void Click_lond (View v){
                                      loadText();
                                      }
                                      void saveText(){
                                      EditText etText1 = (EditText)findViewById(R.id.editText1_id);
                                      EditText etText2 = (EditText)findViewById(R.id.editText2_id);
                                      sPref=getPreferences (MODE_PRIVATE);
                                      Editor ed=sPref.edit();
                                      ed.putString(EXT_COLS, etText1.getText().toString());
                                      ed.putString(EXT_ROWS, etText2.getText().toString());
                                      ed.commit();
                                      Toast.makeText(this, "Текст сохранён", Toast.LENGTH_SHORT).show();
                                      }
                                      void loadText(){
                                      EditText etText1 = (EditText)findViewById(R.id.editText1_id);
                                      EditText etText2 = (EditText)findViewById(R.id.editText2_id);
                                      sPref=getPreferences (MODE_PRIVATE);
                                      String savedText1 =sPref.getString(EXT_COLS, "");
                                      String savedText2 =sPref.getString(EXT_ROWS, "");
                                      etText1.setText(savedText1);
                                      etText2.setText(savedText2);

                                      Toast.makeText(this, "Текст загружен", Toast.LENGTH_SHORT).show();
                                      }
                                      }

                                      Извеняюсь за малые знания и глупые вапросы
                                        Ох... Ну, да, так тоже можно. Правда, это способ, о котором mrco говорил ещё в начале темы =)
                                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                        0 пользователей:


                                        Рейтинг@Mail.ru
                                        [ Script execution time: 0,0403 ]   [ 17 queries used ]   [ Generated: 27.04.24, 05:52 GMT ]