2016-08-19 3 views
0

Написание шаблона всегда меня беспокоит. Одна из этих вещей в Android - это привязанные виды:Bind views автоматически по названию

TextView email; 
TextView password; 
//... 

private bindViews() { 
    email = (TextView) findViewById(R.id.email); 
    password = (TextView) findViewById(R.id.password); 
    //... 
} 

Который, я думаю, может быть улучшен.

Недавно я узнал о библиотеке ButterKnife, и мне понравилось. Он делает код менее:

@BindView(R.id.email) TextView email; 
@BindView(R.id.password) TextView password; 
//... 

ButterKnife.bind(this); 

Но дело в том, что мы обычно называем наши взгляды соответствующими их идентификаторам. Например, имя файла xml id и java - password. (И также преобразуйте змеиный корпус в верблюжонный корпус). Так я думал, что теоретически часть идентификатора также может быть удалена, и код будет сокращен на что-то вроде этого:

@BindView TextView email; 
@BindView TextView password; 
//... 

bind(this); 

Есть ли такое решение? Если нет, было бы полезно и жизнеспособно? Потому что я хотел бы создать его, если нет.

ответ

1

Насколько мне известно, нет ничего подобного. Но ButterKnife активно работает и имеет довольно большое следование. Я лично не откажусь от этого, чтобы сделать мой код немного менее подробным.

По-моему, это было бы довольно крутое упражнение. Мог бы переделать ButterKnife и попытаться объединить эту особенность. Это было бы довольно большое достижение, чтобы внести вклад в одну из библиотек Джейка Уортона.

Для чего это стоит, вам может понравиться LoganSquare. Это JSON Parser, который делает в основном то же самое, что вы описываете с помощью аннотаций. Это также очень быстро. Вот пример его использования:

@JsonObject 
public class User{ 
    // Will infer JSON key based off variable's name 
    @JsonField 
    public String name; 

    // Can specify a key's name too if you want like this 
    @JsonField(name="date_of_birth") 
    public long dateOfBirth; 

    // LoganSquare requires a default constructor like this 
    public User(){} 
} 
+0

Хммм, интересно знать. Парсер Json тоже классный, спасибо за обмен. – Mousa

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

  • Нет связанных вопросов^_^