-1

上部に「前」と「次」の 2 つのナビゲーション バーがあるアプリを作成しています。ボタンが最初と最後のページでそれぞれ無効になるようにしようとしています。このコードが機能しない理由がわかりません。前のボタンは無効になりますが、「次へ」のボタンは有効になりません(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);

    }

ご協力ありがとうございました

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

2 つの異なるメソッドがあり、1 つを呼び出すこともあれば、もう 1 つを呼び出すこともあります。単一のメソッドにすると、次のようになります。

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

MAX_PAGESまた、はリストの長さであり、インデックスは から0までであることに注意してくださいlength - 1。そのため、ページが の場合は次へボタンを無効にする必要がありますMAX_PAGES - 1

于 2012-05-28T16:50:51.200 に答える