Androidアプリで2つのonClick()をif文で判断し、その片方はif文の結果によってActivityを変更するかを決めたいです。
if (v.getId() == R.id.ToLogin) であった場合は、そのままLoginページにActivityを移動するのですが、
もしif (v.getId() == R.id.NewUserSet)だった場合は、TextViewのユーザー名とパスワードをNewUserSetボタンでサーバーに送信しエラーがなかった場合のみ
NewUserSetボタンを押した時のonClick()を使ってLoginページにActivityを移動したいです。
どうぞよろしくお願いします。
9:18分のActivitySecond.java
もともとのコードにNewUserSet()のように引数を空に変更した状態になりました。
java
1package ncmbdataquick.mbaas.com.nifty.datastorequickstart; 2 3import android.app.Activity; 4import android.app.AlertDialog; 5import android.content.Intent; 6import android.os.Bundle; 7import android.support.design.widget.FloatingActionButton; 8import android.support.design.widget.Snackbar; 9import android.support.v7.app.AppCompatActivity; 10import android.support.v7.widget.Toolbar; 11import android.view.View; 12import android.widget.Button; 13import android.widget.EditText; 14import com.nifty.cloud.mb.core.DoneCallback; 15import com.nifty.cloud.mb.core.NCMB; 16import com.nifty.cloud.mb.core.NCMBException; 17import com.nifty.cloud.mb.core.NCMBObject; 18import javax.security.auth.callback.PasswordCallback; 19 20public class ActivitySecond extends Activity { 21 22 //変数を宣言する 23 private EditText mUserName; 24 private EditText mPassword; 25 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_activity_second); 31 32 33 //**************** APIキーの設定とSDKの初期化 ********************** 34 NCMB.initialize(this, ""); 35 36 37 Button sendButton = (Button) findViewById(R.id.ToLogin); 38 sendButton.setOnClickListener(new View.OnClickListener() { 39 40 //ここに新規登録へのボタンを押した時を作る 41 @Override 42 //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。 43 44 public void onClick(View v) { 45 if (v.getId() == R.id.ToLogin) { 46 //この下のclassはログインページ 47 Intent intent = new Intent(getApplication(), ActivityThird.class); 48 startActivity(intent); 49 } 50 51 } 52 }); 53 } 54 55 //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。 56 public void NewUserSet() { 57 58 //NewUserAddというデータベースのクラス 59 final NCMBObject obj2 = new NCMBObject("NewUserAdd"); 60 61 mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName 62 mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword 63 64 String userName = mUserName.getText().toString(); 65 String password = mPassword.getText().toString(); 66 67 obj2.put("Password", password); 68 obj2.put("UserName", userName); 69 obj2.saveInBackground(new DoneCallback() { 70 @Override 71 public void done(NCMBException e) { 72 if (e != null) { 73 //保存失敗 74 new AlertDialog.Builder(ActivitySecond.this) 75 .setTitle("Notification from Nifty") 76 .setMessage("Error:" + e.getMessage()) 77 .setPositiveButton("OK", null) 78 .show(); 79 } else { 80 //保存成功 81 new AlertDialog.Builder(ActivitySecond.this) 82 .setTitle("Notification from Nifty") 83 .setMessage("Save successfull! with ID:" + obj2.getObjectId()) 84 .setPositiveButton("OK", null) 85 .show(); 86 87 //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける 88 Button newUserSetButton = (Button) findViewById(R.id.NewUserSet); 89 newUserSetButton.setOnClickListener(new View.OnClickListener() { 90 91 //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい 92 @Override 93 public void onClick(View v) { 94 //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet 95 if (v.getId() == R.id.NewUserSet) { 96 Intent intent = new Intent(getApplication(), ActivityThird.class); 97 startActivity(intent); 98 } 99 } 100 }); 101 102 103 } 104 } 105 }); 106 107 } 108} 109 110
できました。
java
1package ncmbdataquick.mbaas.com.nifty.datastorequickstart; 2 3import android.app.Activity; 4import android.app.AlertDialog; 5import android.content.Intent; 6import android.os.Bundle; 7import android.support.design.widget.FloatingActionButton; 8import android.support.design.widget.Snackbar; 9import android.support.v7.app.AppCompatActivity; 10import android.support.v7.widget.Toolbar; 11import android.view.View; 12import android.widget.Button; 13import android.widget.EditText; 14import com.nifty.cloud.mb.core.DoneCallback; 15import com.nifty.cloud.mb.core.NCMB; 16import com.nifty.cloud.mb.core.NCMBException; 17import com.nifty.cloud.mb.core.NCMBObject; 18import javax.security.auth.callback.PasswordCallback; 19 20public class ActivitySecond extends Activity implements View.OnClickListener { 21 22 //変数を宣言する 23 private EditText mUserName; 24 private EditText mPassword; 25 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_activity_second); 31 32 //**************** APIキーの設定とSDKの初期化 ********************** 33 NCMB.initialize(this, ""); 34 35 36 findViewById(R.id.ToLogin).setOnClickListener(this); 37 findViewById(R.id.NewUserSet).setOnClickListener(this); 38 39 } 40 //ここに新規登録へのボタンを押した時を作る 41 @Override 42 //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。 43 public void onClick(View v) { 44 45 if (v.getId() == R.id.ToLogin) { 46 //この下のclassはログインページ 47 Intent intent = new Intent(getApplication(), ActivityThird.class); 48 startActivity(intent); 49 } else if (v.getId() == R.id.NewUserSet) { 50 51 //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける 52 NewUserSet(); 53 } 54 } 55 56 //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。 57 public void NewUserSet() { 58 59 //NewUserAddというデータベースのクラス 60 final NCMBObject obj2 = new NCMBObject("NewUserAdd"); 61 62 mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName 63 mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword 64 65 String userName = mUserName.getText().toString(); 66 String password = mPassword.getText().toString(); 67 68 obj2.put("Password", password); 69 obj2.put("UserName", userName); 70 obj2.saveInBackground(new DoneCallback() { 71 @Override 72 public void done(NCMBException e) { 73 if (e != null) { 74 //保存失敗 75 new AlertDialog.Builder(ActivitySecond.this) 76 .setTitle("Notification from Nifty") 77 .setMessage("Error:" + e.getMessage()) 78 .setPositiveButton("OK", null) 79 .show(); 80 } else { 81 //保存成功 82 new AlertDialog.Builder(ActivitySecond.this) 83 .setTitle("Notification from Nifty") 84 .setMessage("Save successfull! with ID:" + obj2.getObjectId()) 85 .setPositiveButton("OK", null) 86 .show(); 87 88 89 Intent intent = new Intent(getApplication(), ActivityThird.class); 90 startActivity(intent); 91 92 93 94 95 } 96 } 97 }); 98 99 } 100 101 102} 103
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/31 12:02
2016/10/31 12:12
2016/10/31 12:31
2016/10/31 12:35
2016/10/31 13:05
2016/10/31 13:22
2016/10/31 14:02
2016/10/31 14:15
2016/11/01 03:56
2016/11/01 05:01
2016/11/01 10:48
2016/11/01 10:53
2016/11/01 11:11
2016/11/01 12:21 編集
2016/11/01 13:08