Java SetOnClickListener和View-无法解析符号
我已经在java类上导入了android.view.view,但是下面的代码仍然没有解析SetOnClickListener和view。不确定这是否是链接的,但我使用了另一种onClick和View方法,正如在第二段代码中观察到的那样Java SetOnClickListener和View-无法解析符号,java,android,Java,Android,我已经在java类上导入了android.view.view,但是下面的代码仍然没有解析SetOnClickListener和view。不确定这是否是链接的,但我使用了另一种onClick和View方法,正如在第二段代码中观察到的那样 final ImageButton btnTest =(ImageButton) findViewById(R.id.passVisibilityStatus); btnTest.setOnClickListener(new View.OnClickLis
final ImageButton btnTest =(ImageButton) findViewById(R.id.passVisibilityStatus);
btnTest.setOnClickListener(new View.OnClickListener()
{
public void changePassVisibility (View view)
btnTest.setSelected(!btnTest.isPressed());
if (btnTest.isPressed()) {
btnTest.setImageResource(R.drawable.PassVisible);
} else {
btnTest.setImageResource(R.drawable.PassInvisible);
}
}}
以前的代码,以防出现问题:
public void loginButtonClicked(View view) {
String email = loginEmail.getText().toString().trim();
String pass = loginPass.getText().toString().trim();
if (!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass)) {
mAuth.signInWithEmailAndPassword(email, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
checkUserExists();
}
}
});
}
}
public void checkUserExists() {
final String user_id = mAuth.getCurrentUser().getUid();
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(user_id)) {
Intent loginIntent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(loginIntent);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public void登录按钮点击(查看){
字符串email=loginEmail.getText().toString().trim();
String pass=loginPass.getText().toString().trim();
如果(!TextUtils.isEmpty(电子邮件)和&!TextUtils.isEmpty(通过)){
mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(新的OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
checkUserExists();
}
}
});
}
}
公共void checkUserExists(){
最后一个字符串user_id=mAuth.getCurrentUser().getUid();
mDatabase.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
if(dataSnapshot.hasChild(用户id)){
Intent loginIntent=新的Intent(LoginActivity.this,MainActivity.class);
startActivity(登录);
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
}
您需要覆盖OnClickListener中的OnClick方法
您的新代码应为:
btnTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// your desired code goes here.
}
});
编辑,解决方案:
btnTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
public void changePassVisibility (View view)
btnTest.setSelected(!btnTest.isPressed());
if (btnTest.isPressed()) {
btnTest.setImageResource(R.drawable.PassVisible);
} else {
btnTest.setImageResource(R.drawable.PassInvisible);
}
}
});
您需要实现onClick()方法
您必须这样设置侦听器
final ImageButton btnTest =(ImageButton)findViewById(R.id.passVisibilityStatus);
btnTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnTest.setSelected(!btnTest.isPressed());
if (btnTest.isPressed()) {
btnTest.setImageResource(R.drawable.PassVisible);
} else {
btnTest.setImageResource(R.drawable.PassInvisible);
}
}
});
你必须按照FlyingNades所说的去做,但我认为你真正的问题是你没有在他正确的地方写这段代码,确保你在OnCreate()方法中调用了“setOnClickListener”,这应该可以解决你的问题。你没有在匿名onClickListenerAn错误中重写onClick方法当我这样做时,会弹出“此处不允许批注”。@JoshuaLee请发布您更新的代码并告诉您在哪一行出现此错误。
final ImageButton btnTest=(ImageButton)findViewById(R.id.passVisibilityStatus);btnTest.setOnClickListener(new View.OnClickListener()){@Override public void changePassVisibility(视图视图)btnTest.setSelected(!btnTest.isPressed());if(btnTest.isPressed()){btnTest.setImageResource(R.drawable.PassVisible);}else{btnTest.setImageResource(R.drawable.PassVisible);}
上面代码的@Override行有错误。您在我的答案中没有遵循我的代码。您需要重写OnClick方法并将代码放入其中。我已使用新代码编辑了我的答案与上一个答案相同,此处不允许出现“错误”注释“当我加上@Override@JoshuaLee您是否使用ButterKnife或任何其他类似的库?我不确定,但我也怀疑类似的库可能是这样的,然后发布完整的java代码,然后只有您得到解决方案它仍然不起作用,setOnClickListener和View仍然未解决,并且最后一行有一个“意外标记”。@JoshuaLee您必须发布完整的活动代码。
final ImageButton btnTest =(ImageButton)findViewById(R.id.passVisibilityStatus);
btnTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnTest.setSelected(!btnTest.isPressed());
if (btnTest.isPressed()) {
btnTest.setImageResource(R.drawable.PassVisible);
} else {
btnTest.setImageResource(R.drawable.PassInvisible);
}
}
});