[英]how to change button action after text change of button in android
我正在開發一個有登錄頁面的應用程序。 如果用戶成功登錄,則“登錄”按鈕將變為注銷。 為此,我正在使用login.setText("Logout");
。 但是我也想為此按鈕更改動作。 這意味着如果用戶單擊登錄文本更改之前的登錄注銷,則該頁面將重定向到登錄頁面。 我不知道如何更改按鈕的文本后如何更改動作。 請給我一些線索...。
// Try this way,hope this will help you to solve your problem...
btnLoginLogout.setText("Login");
btnLoginLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((Button)v).getText().equals("Login")){
((Button)v).setText("Logout");
// do your login code here
}else{
((Button)v).setText("Login");
// do your login code here
}
}
});
您可以嘗試如下操作:
public class Test extends Activity implements View.OnClickListener{
private boolean isLogin = true;
private static final String TEXT_LOGIN = "Login", TEXT_LOGOUT = "Logout";
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_lauyout);
final Button btnLoginLogout = (Button) findViewById(R.id.btn_login_logout);
// Initialize the button with Login text
btnLoginLogout.setText(TEXT_LOGIN);
// Set the click listener for the button
btnLoginLogout.setOnClickListener(this);
}
@Override
public void onClick (View v) {
switch (v.getId()){
case R.id.btn_login_logout:
if (isLogin) {
// Login action
((Button)v).setText(TEXT_LOGOUT);
isLogin = false;
} else {
// Logout action
((Button)v).setText(TEXT_LOGIN);
isLogin = true;
// Redirect here or do an custom action
}
break;
}
}
}
在您的登錄按鈕中的onClick Listener
試試這個
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(login.getText().toString().equals("Login")){
doLogin(); //login functionality here
}else{
doLogout();//logout functionality here
}
}});
一個簡單的解決方案是
logOutButton.setOnClickListener(new OnClickListener()){
@Override
public void onClick(View view){
String buttonText = logOutButton.getText().toString();
if(buttonText.equalsIgnoreCase("Login")){
//let the user login, and change to logout after
}else if(buttonText.equalsIgnoreCase("Logout")){
//let the user logout and change to login after
}
}
});
@Override
public void onClick(View view){
String buttonText = logOutButton.getText().toString();
if(buttonText.equalsIgnoreCase("Login")){
// logIn code here
view.setText("Logout");
}else{
// logOut code here
view.setText("Login");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.