簡體   English   中英

更改活動的意圖無效

[英]Intent that changes activity doesn't work

我創建了一個簡單的計數器,並希望添加一個繼續進行其他活動的按鈕,這就是我得到的:

//counter starts
@Override
public void onClick(View v) {
    if (v == btn1){
        counter++;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.CYAN);
    }
    if (v == btn2){
        counter--;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.GREEN);
    }

    if (v == btn3){
        counter = 0;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.RED);
    }
    //There the counter ends
        next.setOnClickListener(new OnClickListener() { 
            @Override
            public void onClick(View v) {
        Intent intent = new Intent(SecondAcitivity.this, Aktivity.class);
        startActivity(intent);
    }});
    }}

//There the counter ends標記之后,我將OnClickListener設置為按鈕“ NEXT”,該按鈕繼續進行另一個活動,並創建了一個Intent,將其引入活動中,稱為“ Aktivity”。 但是,當我按下按鈕時,沒有任何反應。

將此代碼剪切並粘貼到您的onCreate()方法中

next.setOnClickListener(new OnClickListener() { 
            @Override
            public void onClick(View v) {
        Intent intent = new Intent(SecondAcitivity.this, Aktivity.class);
        startActivity(intent);
    }});

您不能將點擊偵聽器設置為onClick()方法中的對象

碼:

Button b1, b2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    b1 = (Button) findViewById(R.id.f);
    b2 = (Button) findViewById(R.id.s);
    b1.setOnClickListener(this);
}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    b1.setVisibility(View.INVISIBLE);
    b2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            b2.setVisibility(View.INVISIBLE);
        }
    });
}

@Brontok我測試了此代碼,它工作正常。 因此,可以在其他onClick內部實現對象上的onClick。

@MiroslavVitula我也測試了您的方案。 我能夠通過您使用的相同方法打開相同的活動。 也許還有其他問題。

改成

@Override
public void onClick(View v) {

switch(v.getId())
{
case R.id.btn1: // btn1 clicked
        counter++;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.CYAN);
break;
case R.id.btn2: // btn2 clicked
        counter--;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.GREEN);
break;
case R.id.btn1: // btn3 clicked
        counter=0;
        scoreText.setText(Integer.toString(counter));
        scoreText.setBackgroundColor(Color.RED);
break;
case R.id.next: // assuming button next id is next. btn next clicked
          Intent intent = new Intent(SecondAcitivity.this, Aktivity.class);
          startActivity(intent);
break;
}
}

然后在onCreate

next.setOnClickListener(this); // similarly fro other buttons

Ans確保您的Activity實現了OnClickListener

可以使用if else代替switch case

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM