簡體   English   中英

如何在Android中更改按鈕文本后更改按鈕動作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM