如何编写模块化Android代码

时间:2011-08-07 01:45:13

标签: android modular

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

1 个答案:

答案 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;
    }    
}

如果它们完全相同,您可以将数组创建为与静态方法在同一类中的静态数组,并仅传递索引。