説明したような色の変化するアニメーションを作成することができないため、これはAndroidにXMLショートカットがありません。さて、あなたがJavaを使用している間にクリーンなコードの点で "効率"を望むなら、コードでJava注釈を使用してビューをバインドするためのライブラリButterknifeをご覧ください。これにより、コードが宣言的になり、findViewByIdの使用を避けることができます。
依存
は、プロジェクトのbuild.gradleファイルに追加します。
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
あなたのアプリケーションの下に追加build.gradle file;
compile 'com.jakewharton:butterknife:8.4.0'
apt 'com.jakewharton:butterknife-compiler:8.4.0'
活動(またはビューまたは断片)で
私たちは私たちの活動をバインドすることを要求しますButterknifeバインドビューを作成するには、のonCreateは良い場所です。次に、Butterknifeにビューをバインドするフィールドを追加します。この場合、ビューのリストとしてバインドしますが、ビューを1つずつバインドすることもできます。次に、この例の背景を変更します。
public class MyActivity extends Activity {
@BindViews({R.id.view1, R.id.view2, R.id.view3})
List<View> views;
public void onCreate(...) {
...
setContentView(...);
Butterknife.bind(this);
for(View v : views) {
v.setBackgroundColor(ContextCompat.getColor(this, R.color.colorAccent));
}
}
}
また、ビューを区別する必要がある場合は、リスト内に表示する必要はありません。
public class MyActivity extends Activity {
@BindView(R.id.view1)
View view1;
@BindView(R.id.view2)
View view2;
@BindView(R.id.view3)
View view3;
public void onCreate(...) {
...
setContentView(...);
Butterknife.bind(this);
view1.setBackgroundColor(ContextCompat.getColor(this, R.color.color1));
view2.setBackgroundColor(ContextCompat.getColor(this, R.color.color2));
view3.setBackgroundColor(ContextCompat.getColor(this, R.color.color3));
}
}
'idsを作成してからjavaでfindviewbyidを使用すると、それほど効率的ではありません。なぜ効率的ではないのですか? 'ListView'とその' divider'を使ってみてください – nandsito