在OnClick Android

时间:2017-04-03 06:40:00

标签: android

当用户按下按钮1时,我的布局中有2个按钮,数字为'数字'应改为' 2'当用户按下按钮2时,数字值为#39;应更改为' 1'。但值不会更改。 这是我的代码:

public class test extends AppCompatActivity{

public  int number ;

private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.testing);

    btn1=(Button)findViewById(R.id.btn1);
    btn2=(Button)findViewById(R.id.btn2);

    test();
}

void test()
{

  if(number<1) {
    number = 1;
    }

        Log.e("number value : ",String.valueOf(number));


    if(number==1)
    {

         btn1.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View arg0) {
          number=2;

             Log.e("number value : ",String.valueOf(number));


         }

    });

    }


     if(number==2)
    {
     btn2.setOnClickListener(new View.OnClickListener() {

         @Override
        public void onClick(View arg0) {
             number=1;
             Log.e("number value : ",String.valueOf(number));

    }

    });

    }


    }

Log.e outputs

 E/number value :: 2
当我按btn1但是当我按btn2时没有任何反应只有btn1工作

4 个答案:

答案 0 :(得分:1)

这部分代码根本不会被调用:

if(number==2)
    {
     btn2.setOnClickListener(new View.OnClickListener() {

         @Override
        public void onClick(View arg0) {
             number=1;
             Log.e("number value : ",String.valueOf(number));

    }

    });

原因是条件if(number==2),因为数字实际为1,因此不会调用此代码块,因此没有向btn2添加点击侦听器。

onCreate中设置点击监听器,它将完美运行。

答案 1 :(得分:0)

试试这个

----------------------------------------------------------------
| Record id | date_from               | date_to                |
----------------------------------------------------------------
|     A     | 2017-02-03 08:00:00.000 | 2017-02-03 23:59:59.000|
----------------------------------------------------------------
|     A     | 2017-02-04 00:00:00.000 | 2017-02-04 17:00:00.000|
---------------------------------------------------------------- 

答案 2 :(得分:0)

试试这个

void test()
{

  if(number<1) { number = 1; }

  Log.e("number value : ",String.valueOf(number));

  btn1.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View arg0)  {
       if(number == 1)
       {
         number=2;
         Log.e("Button 1 number value : ",String.valueOf(number));
       }
     }
  });

  btn2.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View arg0)  {
       if(number == 2)
       {
         number=1;
         Log.e("Button 2 number value : ",String.valueOf(number));
       }
     }
  });

}

答案 3 :(得分:0)

试试这个

$("#myOptions").change(function() {
      selectedVal = $.trim($("#myOptions option:selected").text());
    var i = $("#myTable thead .headercell td:contains(" + selectedVal + ")").index() + 1;
    $('td:nth-child(' + i+ ')').toggle();
    });