-1

我正在创建一个顶部有两个导航栏的应用程序:“上一个”和“下一个”。我正在尝试使按钮分别在第一页和最后一页被禁用。我不确定为什么这段代码不起作用。上一个按钮被禁用,但“下一个”按钮未启用(假)。

这是我的代码:

previous =(Button)findViewById(R.id.button_previous);
        next = (Button)findViewById(R.id.button_next);
            previous.setOnClickListener(this);
            next.setOnClickListener(this);

        spinner = (Spinner)findViewById(R.id.spinner);
        heading = (TextView)findViewById(R.id.textNavigationHeading);
        text = (TextView)findViewById(R.id.textNavigationText); 



        Bundle ext = getIntent().getExtras();
        this.list = ext.getInt("list");
        this.page = ext.getInt("page");

        if(list == 0){
            itemsHeading = campaignHeadings;
            MAX_PAGES = campaignHeadings.length;
        }

        if(list == 1){
            itemsHeading = specopsHeadings;
            MAX_PAGES = specopsHeadings.length;
        }

        setContent();       
    }

    private void setContent() {
        heading.setText(itemsHeading[page]);
        text.setText("Blah blah blah");     
        checkButtons(page);
    }

    private void checkButtons(int page) {
        if(page == 0)
            previous.setEnabled(false);
        if(page != MAX_PAGES)
            next.setEnabled(true);
    }

    private void resetButtons(int page){
        previous.setEnabled(true);
        next.setEnabled(false);
        checkButtons(page);
    }

    public void onClick(View v) {

        switch(v.getId()){
        case R.id.button_next:
            page += 1;
            break;
        case R.id.button_previous:
            page -= 1;
            break;
        }
        setContent();
        resetButtons(page);

    }

感谢您的帮助

4

1 回答 1

0

启用和禁用按钮的代码如下:

private void checkButtons(int page) {
    if(page == 0)
        previous.setEnabled(false);
    if(page != MAX_PAGES)
        next.setEnabled(true);
}

private void resetButtons(int page) {
    previous.setEnabled(true);
    next.setEnabled(false);
    checkButtons(page);
}

您有两种不同的方法,有时调用一种方法,有时调用另一种方法。使其成为一种方法,如下所示:

private void enableOrDisableButtons(int page) {
    previous.setEnabled(page != 0);
    next.setEnabled(page != (MAX_PAGES - 1));
}

另外,请注意这MAX_PAGES是您列表的长度,并且索引从包含0length - 1包含。因此,当页面为 时,需要禁用下一个按钮MAX_PAGES - 1

于 2012-05-28T16:50:51.200 回答