1

我有一个onClick使用意图启动活动的侦听器,但是如何使侦听器仅在用户单击五次或更多次时才触发活动意图?

public boolean onClick(View v) {

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

    return false;   
}

这里我要登录Activity。登录成功后如何返回之前的活动?

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

为您的活动添加一个静态计数器。

static int clickCount;

在您的 onClick 中:

if(clickCount++<5){return;}
于 2012-11-14T11:07:13.167 回答
1

您可以尝试建立一个计数器来计算点击次数,然后从第 5 次点击开始让他继续前进

要返回上一个活动,只需调用

finish();
于 2012-11-14T11:05:20.427 回答
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;   
    }

对于第二个问题,您必须考虑之前的 Activity 是否必须保持完全相同的方面或更新用户数据。查看 Activity.startActivityForResult (Intent intent, int requestCode) 以调用活动并从中获取结果值。-

于 2012-11-14T11:10:31.507 回答