0

嗨伙计们...请帮助我..我希望每次单击上一个按钮时都应该一个一个返回,例如,如果我按下一个下一个按钮,那么单击上一个按钮应该返回一个,如果我按下两个或更多次,然后在每次点击上一次又一次地转到上一次,然后再次上一次。

xml代码

<TextView
    android:id="@+id/tvSTNN"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="19dp"
    android:text="1"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#F2416B"
    android:textSize="150sp" />

<TextView
    android:id="@+id/tvSTN"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tvSTNN"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="33dp"
    android:text="ONE"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#F2416B"
    android:textSize="100sp" />

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_marginTop="400dp"
    android:layout_centerHorizontal="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/btnRestart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Restart"
         />

    <Button
        android:id="@+id/btnNext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Next"
         />

    <Button 
        android:id="@+id/btnPrevious"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Previous"
        />
</LinearLayout>

爪哇代码

package com.newApp.textfield;


import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class SpellToNumbers extends Activity implements View.OnClickListener{


    Button btn_Next;
    Button btnRestart;
    Button btn_previous;
    TextView tvSTN, tvSTNN;
    int a;
    RelativeLayout stnXML;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    setContentView(R.layout.spell_to_numbers);
    tvSTN = (TextView) findViewById(R.id.tvSTN);
    tvSTNN = (TextView) findViewById(R.id.tvSTNN);
    stnXML = (RelativeLayout) findViewById(R.id.stnXML);
    btn_Next = (Button) findViewById(R.id.btnNext);
    btn_Next.setOnClickListener(this);
    btnRestart = (Button) findViewById(R.id.btnRestart);
    btnRestart.setOnClickListener(this);
    btn_previous = (Button) findViewById(R.id.btnPrevious);
    btn_previous.setOnClickListener(this);
    }//onCreate end



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;

    }//onCreateOptionMenu end


        @Override
        public void onClick(View v) {
            switch (v.getId())
            {
                case R.id.btnRestart:
                    tvSTNN.setText("1");
                    tvSTN.setText("ONE");
                    tvSTNN.setTextColor(Color.parseColor("#F2416B"));
                    tvSTN.setTextColor(Color.parseColor("#F2416B"));
                    stnXML.setBackgroundColor(Color.parseColor("#3FD161"));
                    a = 0;

                    break;

                case R.id.btnNext:
                    if (a == 0)
                    {
                        tvSTNN.setText("2");
                        tvSTNN.setTextColor(Color.parseColor("#F0EFDA"));
                        tvSTN.setText("TWO");
                        tvSTN.setTextColor(Color.parseColor("#F0EFDA"));
                        stnXML.setBackgroundColor(Color.parseColor("#0A0EF5"));
                        a = 1; 
                    }

                    else if (a == 1)
                    {                       
                        tvSTNN.setText("3");
                        tvSTNN.setTextColor(Color.parseColor("#F5F507"));
                        tvSTN.setText("THREE");
                        tvSTN.setTextColor(Color.parseColor("#F5F507"));
                        stnXML.setBackgroundColor(Color.parseColor("#D15BE3"));
                        a = 2;
                    }
                    else if (a == 2)
                    {                       
                        tvSTNN.setText("4");
                        tvSTNN.setTextColor(Color.parseColor("#0AF5DD"));
                        tvSTN.setText("FOUR");
                        tvSTN.setTextColor(Color.parseColor("#0AF5DD"));
                        stnXML.setBackgroundColor(Color.parseColor("#F50A0A"));
                        a = 3;
                    }
                    else if (a == 3)
                    {                       
                        tvSTNN.setText("5");
                        tvSTNN.setTextColor(Color.parseColor("#171117"));
                        tvSTN.setText("FIVE");
                        tvSTN.setTextColor(Color.parseColor("#171117"));
                        stnXML.setBackgroundColor(Color.parseColor("#0AF5DD"));
                        a = 4;
                    }
                    else if (a == 4)
                    {                       
                        tvSTNN.setText("6");
                        tvSTNN.setTextColor(Color.parseColor("#072BF5"));
                        tvSTN.setText("SIX");
                        tvSTN.setTextColor(Color.parseColor("#072BF5"));
                        stnXML.setBackgroundColor(Color.parseColor("#0AF525"));
                        a = 5;
                    }
                    else if (a == 5)
                    {                       
                        tvSTNN.setText("7");
                        tvSTNN.setTextColor(Color.parseColor("#8F0AF5"));
                        tvSTN.setText("SEVEN");
                        tvSTN.setTextColor(Color.parseColor("#8F0AF5"));
                        stnXML.setBackgroundColor(Color.parseColor("#F5F10A"));
                          a = 6;
                    }
                    else if (a == 6)
                    {                       
                        tvSTNN.setText("8");
                        tvSTNN.setTextColor(Color.parseColor("#37F507"));
                        tvSTN.setText("EIGHT");
                        tvSTN.setTextColor(Color.parseColor("#37F507"));
                        stnXML.setBackgroundColor(Color.parseColor("#9C2497"));
                         a = 7;
                    }
                    else if (a == 7)
                    {                       
                        tvSTNN.setText("9");
                        tvSTNN.setTextColor(Color.parseColor("#F50707"));
                        tvSTN.setText("NINE");
                        tvSTN.setTextColor(Color.parseColor("#F50707"));    
                        stnXML.setBackgroundColor(Color.parseColor("#BAF50A"));
                        a = 8;
                    }
                    else if (a == 8)
                    {
                        tvSTNN.setText("10");
                        tvSTNN.setTextColor(Color.parseColor("#0ACAF5"));
                        tvSTN.setText("TEN");
                        tvSTN.setTextColor(Color.parseColor("#0ACAF5"));
                        stnXML.setBackgroundColor(Color.parseColor("#F5700A"));
                        tvSTN.setClickable(false);   
                    }

                    break;


                case R.id.btnPrevious:

                    a--;

                    btn_Next.performClick();


                        break;
            }//switch end


        }//onClick end

    }//class end
4

2 回答 2

0

首先,您还没有为a全局声明的变量初始化值。看来您a仅在单击重新启动按钮时才初始化值。但是,如果您仅在单击重新启动按钮后才启动程序,则没有问题。

但是,最好至少初始化0.a

于 2013-10-25T10:11:09.257 回答
0
// other your code
// ...
@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btnRestart:
        restart();

        break;

    case R.id.btnNext:
        next();

        break;

    case R.id.btnPrevious:

        previous();

        break;
    }// switch end

}// onClick end

private void restart() {
    a = 0;
    setPage();
}

private void previous() {
    if (a > 0) {
        a--;
    }
    setPage();
}

private void next() {
    if (a < 9) {
        a++;
    }
    setPage();
}

private void setPage() {

    if (a == 0) {
        tvSTNN.setText("1");
        tvSTN.setText("ONE");
        tvSTNN.setTextColor(Color.parseColor("#F2416B"));
        tvSTN.setTextColor(Color.parseColor("#F2416B"));
        stnXML.setBackgroundColor(Color.parseColor("#3FD161"));
    } else if (a == 1) {
        tvSTNN.setText("2");
        tvSTNN.setTextColor(Color.parseColor("#F0EFDA"));
        tvSTN.setText("TWO");
        tvSTN.setTextColor(Color.parseColor("#F0EFDA"));
        stnXML.setBackgroundColor(Color.parseColor("#0A0EF5"));
    }

    else if (a == 2) {
        tvSTNN.setText("3");
        tvSTNN.setTextColor(Color.parseColor("#F5F507"));
        tvSTN.setText("THREE");
        tvSTN.setTextColor(Color.parseColor("#F5F507"));
        stnXML.setBackgroundColor(Color.parseColor("#D15BE3"));
    } else if (a == 3) {
        tvSTNN.setText("4");
        tvSTNN.setTextColor(Color.parseColor("#0AF5DD"));
        tvSTN.setText("FOUR");
        tvSTN.setTextColor(Color.parseColor("#0AF5DD"));
        stnXML.setBackgroundColor(Color.parseColor("#F50A0A"));
    } else if (a == 4) {
        tvSTNN.setText("5");
        tvSTNN.setTextColor(Color.parseColor("#171117"));
        tvSTN.setText("FIVE");
        tvSTN.setTextColor(Color.parseColor("#171117"));
        stnXML.setBackgroundColor(Color.parseColor("#0AF5DD"));
    } else if (a == 5) {
        tvSTNN.setText("6");
        tvSTNN.setTextColor(Color.parseColor("#072BF5"));
        tvSTN.setText("SIX");
        tvSTN.setTextColor(Color.parseColor("#072BF5"));
        stnXML.setBackgroundColor(Color.parseColor("#0AF525"));
    } else if (a == 6) {
        tvSTNN.setText("7");
        tvSTNN.setTextColor(Color.parseColor("#8F0AF5"));
        tvSTN.setText("SEVEN");
        tvSTN.setTextColor(Color.parseColor("#8F0AF5"));
        stnXML.setBackgroundColor(Color.parseColor("#F5F10A"));
    } else if (a == 7) {
        tvSTNN.setText("8");
        tvSTNN.setTextColor(Color.parseColor("#37F507"));
        tvSTN.setText("EIGHT");
        tvSTN.setTextColor(Color.parseColor("#37F507"));
        stnXML.setBackgroundColor(Color.parseColor("#9C2497"));
    } else if (a == 8) {
        tvSTNN.setText("9");
        tvSTNN.setTextColor(Color.parseColor("#F50707"));
        tvSTN.setText("NINE");
        tvSTN.setTextColor(Color.parseColor("#F50707"));
        stnXML.setBackgroundColor(Color.parseColor("#BAF50A"));
    } else if (a == 9) {
        tvSTNN.setText("10");
        tvSTNN.setTextColor(Color.parseColor("#0ACAF5"));
        tvSTN.setText("TEN");
        tvSTN.setTextColor(Color.parseColor("#0ACAF5"));
        stnXML.setBackgroundColor(Color.parseColor("#F5700A"));
        tvSTN.setClickable(false);
    }
}

你有不正确的算法,你在下一个函数中的增量“a”变量(更新视图之后),在这之后你点击上一个。先前状态的减量。结果 - 你没有下一步行动......

我修复了你的算法。

于 2013-10-25T10:19:21.263 回答