Хранение переменных представлений Android (кнопка, TextViews и т. Д.) - PullRequest
3 голосов
/ 25 октября 2011

В настоящее время у меня есть приложение, которое хранит около 10 переменных на представление Android, в котором все представления должны динамически изменять свои переменные.Как было бы наилучшим способом хранения этих переменных эффективным способом и или было бы меньше кода, потому что на данный момент у меня есть около 200 переменных, и каждая вызывается как 4 раза, чтобы изменить переменные.

Итакнапример:

String buttonName = "blah";

buttonName = newValue;

Сохранит ли использование ArrayList больше кода и поможет OOD?Кроме того, большинству представлений назначены переменные типа int, float и String.Мне нужен хороший способ сохранить код, который мог бы работать для нескольких представлений, которым всем нужны разные значения.Есть идеи?Любая помощь будет принята с благодарностью!Спасибо!

Ответы [ 3 ]

2 голосов
/ 25 октября 2011

Я бы расширил все представления, которые вы используете, и сохранил бы дополнительные переменные в вашем расширенном классе ...

 //constructor
 public class MyButton extends Button{
   public String someVariable;
   public Button(Context c){
       super(c);
   }

 }

тогда в вашем коде вы будете использовать его как ...

MyButton b = new MyButton(this);
b.someVariable = "foofy"; 
1 голос
/ 25 октября 2011

Я не уверен, что полностью понимаю, что вы имеете в виду. Но я попробую.

Если бы я был вами, я бы создал себе класс "Holder", который содержит все переменные, которые вам нужно хранить, содержащиеся в нем. Затем, когда вы создадите экземпляр объекта этого класса и заполните значения, вы можете «прикрепить» его к определенному представлению, используя метод view.setTag(Object);. Всякий раз, когда вам нужно получить их, вы можете найти ссылку на ваш объект-держатель с помощью (YourHolderClass)view.getTag(); Обратите внимание, что getTag вернет простой объект, вы должны привести его. Объект тега будет придерживаться этого представления все время, пока он существует, поэтому вы всегда сможете получить его

изменить: View.setTag () javadoc

0 голосов
/ 25 октября 2011

Вам нужно изменить эти переменные, а затем отобразить их новые значения в пользовательском интерфейсе?Если это так, вы можете просто иметь метод для установки значений отображения в пользовательском интерфейсе.Вы можете вызвать это во время onCreate или onResume, а затем снова в любое время, когда некоторые значения изменились.Вы также можете использовать encapsulate с пользовательским представлением, а затем вызывать invalidate, чтобы он перерисовывался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...