2016-08-19 19 views
0

ボイラープレートのコードを書くと、いつも気になります。 Androidのこれらの機能の1つは、バインドビューです。名前で自動的にビューをバインド

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); 

しかし、私たちは通常、私たちのビューをIDにマッチさせます。たとえば、xml idとjavaフィールド名の両方がpasswordです。 (また、スネークケーシングをラクダケーシングに変換する)。

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

bind(this); 

は、このような解決策があります:だから私は、理論的には、IDの一部も除去することができ、コードはこのような何かに短縮することを考えていましたか?それがなければ、それは有用で実行可能であろうか?私はそれを作成したいので、そうでなければ。

答えて

1

私の知る限り、そんなことはありません。しかしButterKnifeは積極的に取り組んできており、かなり大きなフォローをしています。私は個人的には、私のコードをやや控えめにするために、それから離れないでしょう。

私は思うにはまだかなりクールなエクササイズになります。 ButterKnifeをフォークし、その機能を統合しようとすることができました.Jake Whartonの図書館に寄稿するのはかなり大きな成果です。

これは何の価値があるのでしょうか、LoganSquareが好きかもしれません。これは、JSONパーサーで、アノテーションで説明したのと基本的に同じです。それはまた非常に速いです。次に、その使用例を示します。

@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

関連する問題