2015-11-15 55 views
0

是否有可能使兩個按鈕setOnClickListener和onClick在兩個不同的xml佈局的一個活動? 在這段代碼中我想通過REST API註冊一個用戶,然後驗證通過發送短信給他的手機號碼,我怎樣才能做到這一點,而不使用意圖和一個活動? 如果寄存器是成功它發送到另一個XML佈局,並要求輸入選擇的代碼(發送到用戶手機),但是當我點擊它btn_opt_send沒有做任何事情....使兩個按鈕setOnClickListener和onClick在一個活動OTP驗證

public class RegisterActivity extends BaseActivity implements OnClickListener { 
    private WebView cweBview; 
    private String fromLocation = ""; 
    private String destinationLocation = ""; 
    private Button btnTopBack; 
    private TextView lblHeader; 

    private EditText txtName; 
    private EditText txtPassword; 
    private EditText txtPasswordConfirm; 
    private EditText txtEmail; 
    private EditText txtPhone; 
    private EditText txtFullName; 
    private EditText txtAddress; 
    private EditText opt_code; 
    private TextView btnRegister, lblConfirmPass, lblPassword, btn_opt_send; 
    private boolean isLogin; 
    private User user; 
    public static final String MY_PREFS_NAME = "LucasApp"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register); 
     user = new User(); 
     isLogin = GlobalValue.getInstance().isLogin; 
     if (isLogin) { 
      user = GlobalValue.getInstance().currentUser; 
    //  btn_opt_send.setOnClickListener(this); 
     } 
     initUI(); 
     initControl(); 
     getData(); 
    } 

    private void initUI() { 
     lblHeader = (TextView) findViewById(R.id.lblHeaderTtle); 
     btnTopBack = (Button) findViewById(R.id.btnLeft); 
     btnTopBack.setBackgroundResource(R.drawable.btn_back); 
     btnTopBack.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       onBackPressed(); 
      } 
     }); 

     txtName = (EditText) findViewById(R.id.txtName); 
     txtPassword = (EditText) findViewById(R.id.txtPassword); 
     txtPasswordConfirm = (EditText) findViewById(R.id.txtPasswordConfirm); 
     txtEmail = (EditText) findViewById(R.id.txtEmail); 
     txtPhone = (EditText) findViewById(R.id.txtPhone); 
     txtFullName = (EditText) findViewById(R.id.txtFullName); 
     txtAddress = (EditText) findViewById(R.id.txtAddress); 
     btnRegister = (TextView) findViewById(R.id.btnRegister); 
     lblConfirmPass = (TextView) findViewById(R.id.lblConfirmPass); 
     lblPassword = (TextView) findViewById(R.id.lblPassword); 
     opt_code = (EditText) findViewById(R.id.opt_code); 

     if (isLogin) { 
      lblHeader.setText(getString(R.string.lbl_my_profile)); 
      txtName.setText(user.getUser_name()); 
      txtEmail.setText(user.getEmail()); 
      txtPhone.setText(user.getPhone()); 
      txtFullName.setText(user.getFull_name()); 
      txtAddress.setText(user.getAddress()); 
      txtPasswordConfirm.setVisibility(View.GONE); 
      lblConfirmPass.setVisibility(View.GONE); 
      txtPassword.setVisibility(View.GONE); 
      lblPassword.setVisibility(View.GONE); 

      txtName.setEnabled(false); 
      txtEmail.setEnabled(false); 
      lblHeader.setText(getString(R.string.lbl_update_profile)); 
      btnRegister.setText(getString(R.string.lbl_update_profile)); 
     } else { 
      lblHeader.setText(getString(R.string.lbl_register)); 
      btnRegister.setText(getString(R.string.lbl_register)); 
     } 
    } 

    private void initControl() { 
     btnRegister.setOnClickListener(this); 
    // btn_opt_send.setOnClickListener(this); 
    } 

    private void getData() { 

    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()) { 
     case R.id.btnRegister: 
      if (isLogin) { 
       updateProfile(); 
      } else { 
       register(); 
      } 
      break; 
      case R.id.btn_opt_send: 
       if (isLogin) { 
        updateProfile(); } 
       else { 
       opt(); 
      } 
       break; 
     } 
    } 


    public void opt() { 
     // user.setUser_name(txtName.getText().toString()); 
     user.setOpt(opt_code.getText().toString()); 
     ModelManager.needOPT(this, true, user.getUser_name(), 
       user.getOpt(), new ModelManagerListener() { 

         public void onSuccess(String json) { 
         // TODO Auto-generated method stub 
         if (ParserUtility.isSuccess(json)) { 
          user = ParserUtility.parseUser(json); 
          GlobalValue.getInstance().setCurrentUser(
            ParserUtility.parseUser(json)); 
            GlobalValue.getInstance().setLogin(true); 
          showToastMessage(getResources().getString(
            R.string.register_success)); 

          SharedPreferences mPrefs = getSharedPreferences(
            MY_PREFS_NAME, MODE_PRIVATE); 
          Editor prefsEditor = mPrefs.edit(); 
          Gson gson = new Gson(); 
          String jsonTemp = gson.toJson(ParserUtility 
            .parseUser(json)); 
          prefsEditor.putString("MyObject", jsonTemp); 
            prefsEditor.putBoolean("isLogin", true); 
          prefsEditor.commit(); 
          onBackPressed(); 
         } else { 
          showToastMessage(getResources().getString(
            R.string.register_failed) 
            + ParserUtility.getMessage(json)); 
         } 
        } 
        @Override 
        public void onError() { 
         // TODO Auto-generated method stub 
         showToastMessage(getResources().getString(
           R.string.have_some_error)); 
        } 

       }); 
    } 
    public void register() { 
     // Get value from view 
     user.setUser_name(txtName.getText().toString()); 
     user.setPassword(txtPassword.getText().toString()); 
     user.setEmail(txtEmail.getText().toString()); 
     user.setPhone(txtPhone.getText().toString()); 
     user.setFull_name(txtFullName.getText().toString()); 
     user.setAddress(txtAddress.getText().toString()); 
     String passWordConfirm = txtPasswordConfirm.getText().toString(); 

     if (user.getUser_name().isEmpty() || user.getPassword().isEmpty() 
       || user.getEmail().isEmpty() || user.getPhone().isEmpty() 
       || user.getFull_name().isEmpty() || user.getAddress().isEmpty() 
       || passWordConfirm.isEmpty()) { 
      showToastMessage(getResources().getString(
        R.string.lbl_please_enter_full)); 
      return; 
     } 

     if (!StringUtility.isEmailValid(user.getEmail())) { 
      showToastMessage(getResources().getString(
        R.string.email_is_not_validated)); 
      return; 
     } 

     if (!user.getPassword().equals(passWordConfirm)) { 
      showToastMessage(getResources().getString(
        R.string.passwords_do_not_match)); 
      return; 
     } 

     ModelManager.register(this, true, user.getUser_name(), 
       user.getPassword(), user.getEmail(), user.getFull_name(), 
       user.getPhone(), user.getAddress(), new ModelManagerListener() { 
        @Override 
        public void onSuccess(String json) { 
         // TODO Auto-generated method stub 
         if (ParserUtility.isSuccess(json)) { 
          user = ParserUtility.parseUser(json); 
          GlobalValue.getInstance().setCurrentUser(
            ParserUtility.parseUser(json)); 
        //  GlobalValue.getInstance().setLogin(true); 
          showToastMessage(getResources().getString(
            R.string.register_success_needopt)); 

          SharedPreferences mPrefs = getSharedPreferences(
            MY_PREFS_NAME, MODE_PRIVATE); 
          Editor prefsEditor = mPrefs.edit(); 
          Gson gson = new Gson(); 
          String jsonTemp = gson.toJson(ParserUtility 
            .parseUser(json)); 
          prefsEditor.putString("MyObject", jsonTemp); 
        //  prefsEditor.putBoolean("isLogin", true); 
          prefsEditor.commit(); 
         // onBackPressed(); 
          setContentView(R.layout.opt_req); 

         } else { 
          showToastMessage(getResources().getString(
            R.string.register_failed) 
            + ParserUtility.getMessage(json)); 
         } 
        } 

        @Override 
        public void onError() { 
         // TODO Auto-generated method stub 
         showToastMessage(getResources().getString(
           R.string.have_some_error)); 
        } 
       }); 
    } 


    } 
} 

第二佈局名稱是R.layout.opt_req並且按鈕位於該佈局上(btn_opt_send)

回答

0

爲事件創建通用類並將onclicklistener設置爲該自定義類。否則,你可以使用活動和片段讓你的服務器的通信應該是活動和您的佈局將在片段 創建一個類,像這樣

public class CustomClickLister implements View.OnClickListener { 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.yourButton: 
       //your logic 
       breake; 
     } 
    } 
} 

集的onclick聽衆這樣

yourButton.setOnClickListener(new CustomClickLister()); 
相關問題