Android,我想在按钮监听里嵌套循环,但是提示i需要是final……

如题,我程序大概是:for(inti=0;i<3;i++){denglu.setOnClickListener(newButton.OnClickListener(){@... 如题,我程序大概是:
for(int i=0;i<3;i++){
denglu.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(yonghuming.getText().toString().equals("wanghb")&&mima.getText().toString().equals("000000")){
//进入***------------------------------------------------------------------------------------
}
else {
if(i<2){
new AlertDialog.Builder(GooglePlayActivity.this)
.setTitle("验证有误")
.setMessage("请重新输入(只有三次机会哦~)")
.setPositiveButton("我知道了",
new DialogInterface.OnClickListener() {
@Override
public void onClick
(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
}
else {
new AlertDialog.Builder(GooglePlayActivity.this)
.setTitle("非常遗憾")
.setMessage("您可能还没有注册,要注册吗?")
.setPositiveButton("不了,谢谢~",
new DialogInterface.OnClickListener() {
@Override
public void onClick
(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
})
.setNegativeButton("我要注册!",
new DialogInterface.OnClickListener() {
@Override
public void onClick
(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
jumpToLayout_zhuce();
}
})
.show();
}
}
}
});
}

我的i是循环变量啊,怎么办?
展开
 我来答
新梦想教育咨询
2013-11-05
知道答主
回答量:14
采纳率:0%
帮助的人:17.9万
展开全部

您好,一般不用循环来做试着登录了几次,您可以增加:

  1. 一个计数器,用于同一个用户名试了几次

  2. 您要保存当前的用户名,用于判断是否是同一个用户名



请看下面代码(我已经做过了测试)

package com.example.answerforbaidu;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

private EditText yonghuming = null;
private EditText mima = null;
private Button loginBtn = null;

//一个计数器,用于同一个用户名试了几次
private int TimesOfClick = 0;
//保存当前的用户名,用于判断是否是同一个用户名
private String current_yonghuming = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

this.yonghuming = (EditText) super.findViewById(R.id.yonghuming);
this.current_yonghuming = yonghuming.getText().toString();
this.mima = (EditText) super.findViewById(R.id.mima);
this.loginBtn = (Button) super.findViewById(R.id.loginBtn);
this.loginBtn.setOnClickListener(new LoginOnClickListenerImpl());

}

private class LoginOnClickListenerImpl implements OnClickListener {

@Override
public void onClick(View view) {
////另一个用户名,改变当前的用户名,将计数器归位到0
if(!MainActivity.this.yonghuming.getText().toString().equals(MainActivity.this.current_yonghuming)){
MainActivity.this.TimesOfClick = 0;
MainActivity.this.current_yonghuming = MainActivity.this.yonghuming.getText().toString();
}


if (MainActivity.this.yonghuming.getText().toString()
.equals("wanghb")
&& MainActivity.this.mima.getText().toString()
.equals("000000")) {
//进入

}else{

//计数器加一
MainActivity.this.TimesOfClick++;

if(TimesOfClick <= 3){
new AlertDialog.Builder(MainActivity.this)
.setTitle("验证有误")
.setMessage("请重新输入(只有三次机会哦~)")
.setPositiveButton("我知道了",
new DialogInterface.OnClickListener() {
@Override
public void onClick
(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
}else{
new AlertDialog.Builder(MainActivity.this)
.setTitle("非常遗憾")
.setMessage("您可能还没有注册,要注册吗?")
.setPositiveButton("不了,谢谢!",
new DialogInterface.OnClickListener() {
@Override
public void onClick
(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
})
.setNegativeButton("我要注册",
new DialogInterface.OnClickListener() {
@Override
public void onClick
(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//跳转到注册界面
}
})
.show();
}

}

}

}

}
xupeiying
2013-11-05 · TA获得超过468个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:567万
展开全部
	for(int i=0;i<3;i++){
    final int idx = i;
    // .....
           if(idx <2){
           // ....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a85b46e580
2013-11-05 · TA获得超过162个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:184万
展开全部

lz太偷懒了,提示框这块的判断变量就不要用i了,随便在写一个全局变量,然后跟着i变化就行了



已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alading322
2013-11-05
知道答主
回答量:5
采纳率:0%
帮助的人:4.1万
展开全部
你的这段程序思路有问题,你的i与按钮点击逻辑是在不同的线程内,你可以在按钮点击逻辑处理内只做对错的判断,通过Handler将判断结果传回主线程,再做录入错误次数的判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式