Android studio 如何使我的文本视图可单击以显示警报诊断日志框?
我有以下代码,但“重置密码”一词不可点击。即使在我向xml添加了一些属性之后,我仍然无法单击它。我想我们应该用按钮而不是文本视图来点击?我已将变量链接到xml文件,并为其设置了相关的TextViewAndroid studio 如何使我的文本视图可单击以显示警报诊断日志框?,android-studio,Android Studio,我有以下代码,但“重置密码”一词不可点击。即使在我向xml添加了一些属性之后,我仍然无法单击它。我想我们应该用按钮而不是文本视图来点击?我已将变量链接到xml文件,并为其设置了相关的TextView public class LoginActivity extends AppCompatActivity { private EditText email; private EditText password; private TextView reset_passwo
public class LoginActivity extends AppCompatActivity {
private EditText email;
private EditText password;
private TextView reset_password;
private Button login;
private Button register;
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
email = findViewById(R.id.email);
password = findViewById(R.id.password);
login = findViewById(R.id.login);
register = findViewById(R.id.register);
reset_password = findViewById(R.id.reset_password);
auth = FirebaseAuth.getInstance();
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String txt_email = email.getText().toString();
String txt_password = password.getText().toString();
loginUser(txt_email, txt_password);
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
}
});
}
private void loginUser(String email, String password) {
auth.signInWithEmailAndPassword(email, password).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish();
}
});
reset_password.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final EditText resetMail = new EditText(v.getContext());
AlertDialog.Builder passwordResetDialog = new AlertDialog.Builder(v.getContext());
passwordResetDialog.setTitle("Reset Password ?");
passwordResetDialog.setMessage("Enter Your Email To Received Reset Link");
passwordResetDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// extract the email and send reset link
String mail = resetMail.getText().toString().trim();
auth.sendPasswordResetEmail(mail).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(LoginActivity.this, "Reset Link Sent To Your Email", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(LoginActivity.this, "Error! Reset Link is Not Sent" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
});
passwordResetDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// close the dialog
}
});
passwordResetDialog.create().show();
}
});
}
}
公共类LoginActivity扩展了AppCompatActivity{
私人文本电子邮件;
私有文本密码;
私有文本视图重置密码;
私人按钮登录;
专用按钮寄存器;
私有FirebaseAuth-auth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
email=findviewbyd(R.id.email);
password=findviewbyd(R.id.password);
login=findviewbyd(R.id.login);
寄存器=findViewById(R.id.register);
重置密码=findviewbyd(R.id.reset\u密码);
auth=FirebaseAuth.getInstance();
login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String txt_email=email.getText().toString();
字符串txt_password=password.getText().toString();
登录用户(txt_电子邮件、txt_密码);
}
});
register.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
startActivity(新意图(LoginActivity.this、RegisterActivity.class));
}
});
}
私有void登录用户(字符串电子邮件、字符串密码){
auth.signiWithEmailandPassword(电子邮件,密码).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(AuthResult AuthResult){
Toast.makeText(LoginActivity.this,“登录成功”,Toast.LENGTH_SHORT.show();
startActivity(新意图(LoginActivity.this、MainActivity.class));
完成();
}
});
reset_password.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
final EditText resetMail=新的EditText(v.getContext());
AlertDialog.Builder passwordResetDialog=新建AlertDialog.Builder(v.getContext());
setTitle(“重置密码?”);
passwordResetDialog.setMessage(“输入您的电子邮件以接收重置链接”);
passwordResetDialog.setPositiveButton(“是”,新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
//提取电子邮件并发送重置链接
String mail=resetMail.getText().toString().trim();
auth.sendPasswordResetEmail(mail).addOnSuccessListener(新OnSuccessListener(){
@凌驾
成功时公开作废(作废避免){
Toast.makeText(LoginActivity.this,“重置发送到电子邮件的链接”,Toast.LENGTH_SHORT.show();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(LoginActivity.this,“错误!未发送重置链接”+e.getMessage(),Toast.LENGTH_SHORT).show();
}
});
}
});
passwordResetDialog.setNegativeButton(“否”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
//关闭对话框
}
});
passwordResetDialog.create().show();
}
});
}
}
这是我的xml代码:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Forgot Password"
android:layout_below="@id/password"
android:id="@+id/reset_password"/>
有什么问题吗?textview根本不会单击。。。。即使我添加了clickable=true属性,etcI也认为只有一个按钮是可点击的?我认为textview不是按钮,不会点击。您可以点击textview