【问题标题】:Android Beginner: Enabling ButtonsAndroid 初学者:启用按钮
【发布时间】:2012-05-28 16:43:54
【问题描述】:

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

这是我的代码:

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

    }

感谢您的帮助

【问题讨论】:

    标签: java android eclipse android-layout android-intent


    【解决方案1】:

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

    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时需要禁用next按钮。

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多