我有5个活动,每个活动显示10个按钮。根据数据库外的数据显示或隐藏按钮。目前,我在所有5个活动中都有完全相同的代码。如何创建可包含在每个活动中的单个模块,以便我不必复制代码?
我目前在每个模块的循环中包含相同的代码:
if ( i == 1 ) ((Button) findViewById(R.id.btn1 )).setVisibility( visible ) ;
if ( i == 2 ) ((Button) findViewById(R.id.btn2 )).setVisibility( visible ) ;
if ( i == 3 ) ((Button) findViewById(R.id.btn3 )).setVisibility( visible ) ;
if ( i == 4 ) ((Button) findViewById(R.id.btn4 )).setVisibility( visible ) ;
if ( i == 5 ) ((Button) findViewById(R.id.btn5 )).setVisibility( visible ) ;
答案 0 :(得分:1)
首先,为了缩短代码,可以创建一个id数组并使用i作为索引:
int ids[] = { R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4,R.id.btn5};
// ....
if (i >= ids.length) {
// some error
}
else {
((Button) findViewById(ids[i] )).setVisibility( visible );
}
如果按钮与活动不同,您可以创建静态方法:
public static boolean setVisible(int[] ids, int i) {
if (i >= ids.length) {
return false;
}
else {
((Button) findViewById(ids[i] )).setVisibility( visible );
return true;
}
}
如果它们完全相同,您可以将数组创建为与静态方法在同一类中的静态数组,并仅传递索引。