1

インテントを使用してアクティビティを開始するonClickリスナーがありますが、ユーザーが5回以上クリックしたときにのみ、リスナーにアクティビティインテントを起動させるにはどうすればよいですか?

public boolean onClick(View v) {

    Intent myIntent = new Intent(activity, loginActivity.class);
    activity.startActivity(myIntent);

    return false;   
}

ここで、アクティビティにログインします。ログインに成功した後、どうすれば以前のアクティビティに戻ることができますか?

public void onClick(View v) {

    String username = Username.getText().toString();
    String password = Password.getText().toString();

    if(username.equals("guest") && password.equals("guest")) {
        lResult.setText("Login successful.");
    } else {
        lResult.setText("Login failed");
    }
}
4

4 に答える 4

10

クリックするたびに増加する静的変数をプログラムに設定します。

[カウントリーチ5]をクリックすると、コードをトリガーしてLoginActivityを開始します。

static int i = 0;

@override
public void onClick(View view) {
    i++;
    if (i == 5) {
        i = 0;
        Intent myIntent = new Intent(activity, loginActivity.class);
        activity.startActivity(myIntent);
    }
}
于 2012-11-14T11:06:12.517 に答える
1

クリック数をカウントするカウンターを作成して、5回目のクリックから先に進むことができます。

前のアクティビティに戻るには、

finish();
于 2012-11-14T11:05:20.427 に答える
1

アクティビティに静的カウンターを追加します。

static int clickCount;

onClickで:

if(clickCount++<5){return;}
于 2012-11-14T11:07:13.167 に答える
0

最初の質問では、クラスのカウンター変数を使用してonClick()をインクリメントし、インテントを開始する前に5以上であることを確認します。

    int clickCounter;

    public boolean onClick(View v) {

            clickCounter++;

            if (clickCounter >= 5) {

                    Intent myIntent = new Intent(activity, loginActivity.class);
                    activity.startActivity(myIntent);
            }

            return false;   
    }

2番目の質問では、前のアクティビティがまったく同じ側面を維持する必要があるのか​​、ユーザーデータで更新する必要があるのか​​を考慮する必要があります。アクティビティを呼び出すためのActivity.startActivityForResult(Intent intent、int requestCode)を見て、そこから結果値を取得します。-

于 2012-11-14T11:10:31.507 に答える