使用数组来简化代码

时间:2016-07-18 13:41:37

标签: android android-studio

因为这段代码是重复的,所以我决定改变它

TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabOne.setText("ONE");
tabOne.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_favourite, 0, 0);
tabLayout.getTabAt(0).setCustomView(tabOne);

TextView tabTwo = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabTwo.setText("TWO");
tabTwo.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_call, 0, 0);
tabLayout.getTabAt(1).setCustomView(tabTwo);

TextView tabThree = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabThree.setText("THREE");
tabThree.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_contacts, 0, 0);
tabLayout.getTabAt(2).setCustomView(tabThree);

进入:

private void SetupTab() {
    TextView[] Tab = new TextView[3];
    int[] tabIcons = {
        R.drawable.tab1,
        R.drawable.tab2,
        R.drawable.tab3
    };
    String[] tabTitle = {"ONE","TWO","THREE"};

    for (int i = 0; i < 3; i++) {
        TextView Tab[i] = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
        Tab[i].setText(tabTitle[i]);
        Tab[i].setCompoundDrawablesWithIntrinsicBounds(0, tabIcons[i], 0, 0);
        tabLayout.getTabAt(i).setCustomView(Tab[i]);
    }
}

但是我的问题是我的程序没有用。任何人都可以帮我解决吗?我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

我认为TextView[] Tab是不必要的:

private void SetupTab() {
    int[] tabIcons = {
            R.drawable.tab1,
            R.drawable.tab2,
            R.drawable.tab3
    };
    String[] tabTitle = {"ONE","TWO","THREE"};

    for (int i = 0; i < 3; i++) {
        TextView view = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
        view.setText(tabTitle[i]);
        view.setCompoundDrawablesWithIntrinsicBounds(0, tabIcons[i], 0, 0);
        tabLayout.getTabAt(i).setCustomView(view);
    }
}