从ViewFlipper(Android)按下设置按钮

时间:2011-11-10 15:45:11

标签: android button viewflipper

我正在制作Android应用并遇到一个奇怪的问题。我需要一个ViewFlipper 5个标签。我为一个有5个按钮的页面做了一个布局。我使用OnClickListener并且翻转标签工作正常,但我需要setPressed(true)一个按钮,我不能这样做。有重复的问题或其他问题。我在网上寻找解决方案,但没有其他人有这个问题?我做错了什么?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    factory = getLayoutInflater();
        skin = factory.inflate(R.layout.skin_tab_raspored, null);

    vremelayout = (LinearLayout) skin.findViewById(R.id.vreme);
    infolayout = (LinearLayout) skin.findViewById(R.id.info);

        buttons[0] = (Button) skin.findViewById(R.id.pon);
        buttons[1] = (Button) skin.findViewById(R.id.uto);
        buttons[2] = (Button) skin.findViewById(R.id.sre);
        buttons[3] = (Button) skin.findViewById(R.id.cet);
        buttons[4] = (Button) skin.findViewById(R.id.pet);

        buttons[0].setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                flipper_info.setDisplayedChild(0);
                buttons[currentTab].setPressed(false);
                currentTab = 0;
                buttons[0].setPressed(true);
            }
        });
        buttons[1].setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                flipper_info.setDisplayedChild(1);
                buttons[currentTab].setPressed(false);
                currentTab = 1;
                buttons[1].setPressed(true);
            }
        });
        buttons[2].setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                flipper_info.setDisplayedChild(2);
                buttons[currentTab].setPressed(false);
                currentTab = 2;
                buttons[2].setPressed(true);
            }
        });
        buttons[3].setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                flipper_info.setDisplayedChild(3);
                buttons[currentTab].setPressed(false);
                currentTab = 3;
                buttons[3].setPressed(true);
            }
        });
        buttons[4].setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                flipper_info.setDisplayedChild(4);
                buttons[currentTab].setPressed(false);
                currentTab = 4;
                buttons[4].setPressed(true);
            }
        });

        buttons[0].setPressed(true);

        add_time(); //adding content to vremelayout

        flipper_info = new ViewFlipper(this);

        flipper_info.addView(this.addContentToInfo(Dan.pon));//adding content to infolayout
        flipper_info.addView(this.addContentToInfo(Dan.uto));
        flipper_info.addView(this.addContentToInfo(Dan.sre));
        flipper_info.addView(this.addContentToInfo(Dan.cet));
        flipper_info.addView(this.addContentToInfo(Dan.pet));

        infolayout.addView(flipper_info);

        setContentView(skin);
}

1 个答案:

答案 0 :(得分:1)

在每个clickListener

中使用setPressed的setEnabled()
            flipper_info.setDisplayedChild(0);
            buttons[currentTab].setEnabled(true);
            currentTab = 0;
            buttons[0].setEnabled(false);

对于背景颜色更改使用toggleButton,它将允许您为clickListener内的开/关状态设置选择器...切换状态。