2011-10-24 2 views
3

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

Так как это:

String buttonName = "blah";

buttonName = newValue;

Would с помощью ArrayList СОХРАНИТЬ больше кода и помощи ООД? Также большинство представлений имеют ints, floats, & Переменные String, назначенные им. Мне нужен хороший способ сохранить код, который мог бы работать для нескольких видов, которым все нужны разные значения. Есть идеи? Любая помощь будет принята с благодарностью! Благодаря!

ответ

2

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

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

} 

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

MyButton b = new MyButton(this); 
b.someVariable = "foofy"; 
+0

Это позволит изменить несколько кнопок и т. Д.? не все сразу, но хранящие разные переменные для разных просмотров? Или мне нужен новый класс для каждого вида кнопки? –

+0

Я не на 100% понятен, что вы делаете, поэтому сложно ответить на ваш вопрос. Но ваш расширенный класс может иметь как можно больше членов, и вы, конечно, можете создать столько экземпляров этого объекта, сколько хотите. Какие другие виды взглядов вы используете? Изображений? TextView?Я должен сказать, что на первый взгляд я чувствую, что вы делаете что-то «не совсем правильно», но трудно сказать, учитывая ваше относительно неопределенное описание. –

+0

Я приношу свои извинения за неопределенность, просто объяснить, что приложение в основном добавляет случайные андроидные представления к макету и позволяет пользователю динамически изменять взгляды на ходу. который распространяется на большинство представлений android. –

0

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

+0

да раз взглядов переменные изменились у меня есть макет обновления, который не является вопрос, который я обязательно должен иметь. Я не хочу казаться грубым или не благодарным, благодарю вас за помощь. Я ищу способ переместить мои переменные из основного файла класса активности и, возможно, найти способ сохранить их в структуре данных для каждого представления или что-то еще. Что-то, что сэкономит время и код, а не все в одном файле. Я вроде как не могу выразить это так, как я извиняюсь. –

+0

было бы полезно узнать, каковы эти переменные. Можете ли вы привести пример того, что вы храните в них, и как вы собираетесь использовать эти данные? –

1

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

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

редактировать: View.setTag() Javadoc

Смежные вопросы