質問編集履歴

14 誤字

edoooooo

edoooooo score 151

2016/11/01 22:11  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton = (Button) findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
できました。
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity implements View.OnClickListener {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       findViewById(R.id.ToLogin).setOnClickListener(this);
       findViewById(R.id.NewUserSet).setOnClickListener(this);
   }
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               } else if (v.getId() == R.id.NewUserSet) {
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   NewUserSet();
               }
           }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                       Intent intent = new Intent(getApplication(), ActivityThird.class);
                       startActivity(intent);
               }
           }
       });
   }
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

13 コードの追加

edoooooo

edoooooo score 151

2016/11/01 22:10  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。  
```java  
public class ActivitySecond extends Activity {  
 
   //変数を宣言する  
   private EditText mUserName;  
   private EditText mPassword;  
 
 
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.activity_activity_second);  
 
 
       //**************** APIキーの設定とSDKの初期化 **********************  
       NCMB.initialize(this, "");  
 
 
       Button sendButton = (Button) findViewById(R.id.ToLogin);  
       sendButton.setOnClickListener(new View.OnClickListener() {  
 
           //ここに新規登録へのボタンを押した時を作る  
           @Override  
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。  
             
           public void onClick(View v) {  
               if (v.getId() == R.id.ToLogin) {  
                   //この下のclassはログインページ  
                   Intent intent = new Intent(getApplication(), ActivityThird.class);  
                   startActivity(intent);  
               }  
               
 
 
           }  
       });  
   }  
 
 
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。  
 
   public void NewUserSet(View view) {  
 
       //NewUserAddというデータベースのクラス  
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");  
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。  
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。  
 
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。  
       //この下のR.id.UserNameのところには、何書くべきなのか?  
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName  
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword  
 
       String userName=mUserName.getText().toString();  
       String password=mPassword.getText().toString();  
 
       obj2.put("Password", password);  
       obj2.put("UserName", userName);  
       obj2.saveInBackground(new DoneCallback() {  
           @Override  
           public void done(NCMBException e) {  
               if (e != null) {  
                   //保存失敗  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Error:" + e.getMessage())  
                           .setPositiveButton("OK", null)  
                           .show();  
               } else {  
                   //保存成功  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())  
                           .setPositiveButton("OK", null)  
                           .show();  
 
 
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける  
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);  
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {  
 
 
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい  
                       @Override  
                       public void onClick(View v) {  
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet  
                           if (v.getId() == R.id.NewUserSet) {  
                               Intent intent = new Intent(getApplication(), ActivityThird.class);  
                               startActivity(intent);  
                           }  
                       }  
                   });  
 
 
 
 
               }  
           }  
       });  
 
 
 
 
 
   }  
 
 
}  
```
9:18分のActivitySecond.java
上に記述してあるコードにNewUserSet()のように引数を空に変更した状態になりました。
もともとのコードにNewUserSet()のように引数を空に変更した状態になりました。
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton = (Button) findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```  
できました。  
```java  
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;  
 
import android.app.Activity;  
import android.app.AlertDialog;  
import android.content.Intent;  
import android.os.Bundle;  
import android.support.design.widget.FloatingActionButton;  
import android.support.design.widget.Snackbar;  
import android.support.v7.app.AppCompatActivity;  
import android.support.v7.widget.Toolbar;  
import android.view.View;  
import android.widget.Button;  
import android.widget.EditText;  
import com.nifty.cloud.mb.core.DoneCallback;  
import com.nifty.cloud.mb.core.NCMB;  
import com.nifty.cloud.mb.core.NCMBException;  
import com.nifty.cloud.mb.core.NCMBObject;  
import javax.security.auth.callback.PasswordCallback;  
 
public class ActivitySecond extends Activity implements View.OnClickListener {  
 
   //変数を宣言する  
   private EditText mUserName;  
   private EditText mPassword;  
 
 
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.activity_activity_second);  
 
       //**************** APIキーの設定とSDKの初期化 **********************  
       NCMB.initialize(this, "");  
 
 
       findViewById(R.id.ToLogin).setOnClickListener(this);  
       findViewById(R.id.NewUserSet).setOnClickListener(this);  
 
   }  
           //ここに新規登録へのボタンを押した時を作る  
           @Override  
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。  
           public void onClick(View v) {  
 
               if (v.getId() == R.id.ToLogin) {  
                   //この下のclassはログインページ  
                   Intent intent = new Intent(getApplication(), ActivityThird.class);  
                   startActivity(intent);  
               } else if (v.getId() == R.id.NewUserSet) {  
 
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける  
                   NewUserSet();  
               }  
           }  
 
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。  
   public void NewUserSet() {  
 
       //NewUserAddというデータベースのクラス  
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");  
 
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName  
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword  
 
       String userName = mUserName.getText().toString();  
       String password = mPassword.getText().toString();  
 
       obj2.put("Password", password);  
       obj2.put("UserName", userName);  
       obj2.saveInBackground(new DoneCallback() {  
           @Override  
           public void done(NCMBException e) {  
               if (e != null) {  
                   //保存失敗  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Error:" + e.getMessage())  
                           .setPositiveButton("OK", null)  
                           .show();  
               } else {  
                   //保存成功  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())  
                           .setPositiveButton("OK", null)  
                           .show();  
 
 
                       Intent intent = new Intent(getApplication(), ActivityThird.class);  
                       startActivity(intent);  
 
 
 
 
               }  
           }  
       });  
 
   }  
 
 
}  
 
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

12 詳細の変更

edoooooo

edoooooo score 151

2016/11/01 21:53  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
9:18分のActivitySecond.java
上に記述してあるコードにNewUserSet()のように引数を空に変更した状態になりました。
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "78da4765984f7add2ddd2b22ed978d4bf744818563c44fbdd0f3be19b7430a43", "bce814b5040d532d488c176b114fa3463552c10d9e226b9090dbe959b2f0dc46");
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton = (Button) findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

11 詳細のついあk

edoooooo

edoooooo score 151

2016/11/01 21:46  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
9:18分のActivitySecond.java
上に記述してあるコードにNewUserSet()のように引数を空に変更した状態になりました。
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       NCMB.initialize(this, "78da4765984f7add2ddd2b22ed978d4bf744818563c44fbdd0f3be19b7430a43", "bce814b5040d532d488c176b114fa3463552c10d9e226b9090dbe959b2f0dc46");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
 
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
 
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
 
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton = (Button) findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
 
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
 
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

10 誤字

edoooooo

edoooooo score 151

2016/11/01 21:27  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
9:18分のActivitySecond.java
上に記述してあるコードにNewUserSet()のように引数を空に変更した状態になりました。
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "78da4765984f7add2ddd2b22ed978d4bf744818563c44fbdd0f3be19b7430a43", "bce814b5040d532d488c176b114fa3463552c10d9e226b9090dbe959b2f0dc46");
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton = (Button) findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

9 コードの修正

edoooooo

edoooooo score 151

2016/11/01 21:19  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
9:10分のActivitySecond.java
9:18分のActivitySecond.java
上に記述してあるコードにNewUserSet()のように引数を空に変更した状態になりました。
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
 
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "78da4765984f7add2ddd2b22ed978d4bf744818563c44fbdd0f3be19b7430a43", "bce814b5040d532d488c176b114fa3463552c10d9e226b9090dbe959b2f0dc46");
       Button sendButton = (Button) findViewById(R.id.NewUserAdd);
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (v.getId() == R.id.NewUserAdd) {
                   Button sendButton = (Button) findViewById(R.id.NewUserAdd);
                   Intent intent = new Intent(getApplication(), ActivitySecond.class);
                   startActivity(intent);
               }
           }
       });
       Button toLoginButton = (Button) findViewById(R.id.ToLogin);
       toLoginButton.setOnClickListener(new View.OnClickListener() {
           @Override
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ  
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
//このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
 
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
               }
           }
       });
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton = (Button) findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
 
 
 
 
 
 
 
 
 
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

8 できるだけ直しました。

edoooooo

edoooooo score 151

2016/11/01 21:11  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
8:08分のActivitySecond.java
9:10分のActivitySecond.java
```java
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
       import android.app.Activity;
       import android.app.AlertDialog;
       import android.content.Intent;
       import android.os.Bundle;
       import android.support.design.widget.FloatingActionButton;
       import android.support.design.widget.Snackbar;
       import android.support.v7.app.AppCompatActivity;
       import android.support.v7.widget.Toolbar;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;
       import com.nifty.cloud.mb.core.DoneCallback;
       import com.nifty.cloud.mb.core.NCMB;
       import com.nifty.cloud.mb.core.NCMBException;
       import com.nifty.cloud.mb.core.NCMBObject;
       import javax.security.auth.callback.PasswordCallback;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.nifty.cloud.mb.core.DoneCallback;
import com.nifty.cloud.mb.core.NCMB;
import com.nifty.cloud.mb.core.NCMBException;
import com.nifty.cloud.mb.core.NCMBObject;
import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
 
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "78da4765984f7add2ddd2b22ed978d4bf744818563c44fbdd0f3be19b7430a43", "bce814b5040d532d488c176b114fa3463552c10d9e226b9090dbe959b2f0dc46");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(this);
   }
   //{
   //ここに新規登録へのボタンを押した時を作る
   @Override
   //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
   //そのログインページはMainActivityだから、ActivityThirdはいらない。
   public void onClick(View v) {
       if (v.getId() == R.id.ToLogin) {
           //この下をclassをログインページに変更する。Activityをもう一つ作る。
           Intent intent = new Intent(getApplication(), ActivityThird.class);
           startActivity(intent);
       }
       //これはログイン専用ページ
   }
   // });
   // }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
       Button sendButton = (Button) findViewById(R.id.NewUserAdd);
       sendButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (v.getId() == R.id.NewUserAdd) {
                   Button sendButton = (Button) findViewById(R.id.NewUserAdd);
                   Intent intent = new Intent(getApplication(), ActivitySecond.class);
                   startActivity(intent);
               }
           }
       });
       Button toLoginButton = (Button) findViewById(R.id.ToLogin);
       toLoginButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
           }
       });
   }
//このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       mUserName = (EditText) findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword = (EditText) findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName = mUserName.getText().toString();
       String password = mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   //Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   // newUserSetButton.setOnClickListener(new View.OnClickListener(){
                   //onCreateに移動
                   //ここにログインへのボタンを押した時を作る
                   @Override
                   public void onClick(View v) {
                       //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                       if (v.getId() == R.id.NewUserSet) {
                           Intent intent = new Intent(getApplication(), ActivityThird.class);
                           startActivity(intent);
                       }
                   }
                   // });
               }
           }
       });
   }
               }
           }
       });
   }
}
 
 
 
 
 
 
 
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

7 コードの変更

edoooooo

edoooooo score 151

2016/11/01 20:09  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
改善後のActivitySecond.java
8:08分のActivitySecond.java
```java
public void onClick(View v) {
package ncmbdataquick.mbaas.com.nifty.datastorequickstart;
       import android.app.Activity;
       import android.app.AlertDialog;
       import android.content.Intent;
       import android.os.Bundle;
       import android.support.design.widget.FloatingActionButton;
       import android.support.design.widget.Snackbar;
       import android.support.v7.app.AppCompatActivity;
       import android.support.v7.widget.Toolbar;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;
       import com.nifty.cloud.mb.core.DoneCallback;
       import com.nifty.cloud.mb.core.NCMB;
       import com.nifty.cloud.mb.core.NCMBException;
       import com.nifty.cloud.mb.core.NCMBObject;
       import javax.security.auth.callback.PasswordCallback;
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "78da4765984f7add2ddd2b22ed978d4bf744818563c44fbdd0f3be19b7430a43", "bce814b5040d532d488c176b114fa3463552c10d9e226b9090dbe959b2f0dc46");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(this);
   }
   //{
   //ここに新規登録へのボタンを押した時を作る
   @Override
   //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
   //そのログインページはMainActivityだから、ActivityThirdはいらない。
   public void onClick(View v) {
       if (v.getId() == R.id.ToLogin) {
           //この下をclassをログインページに変更する。Activityをもう一つ作る。
           Intent intent = new Intent(getApplication(), ActivityThird.class);
           startActivity(intent);
 
           //View viewを無くしたこれは多分表示するページだと思う.  
           //だから、activity_activity_secondだと思う。  
 
       } else if (v.getId() == R.id.NewUserSet) {  
 
           this.NewUserSet(R.layout.activity_activity_second);  
 
 
           
         
 
 
           //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。  
           // this.NewUserSet(R.id_content_activity_third);  
       }
   }
       //これはログイン専用ページ
   }
   // });
   // }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet() {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   //Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   // newUserSetButton.setOnClickListener(new View.OnClickListener(){
                   //onCreateに移動
                   //ここにログインへのボタンを押した時を作る
                   @Override
                   public void onClick(View v) {
                       //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                       if (v.getId() == R.id.NewUserSet) {
                           Intent intent = new Intent(getApplication(), ActivityThird.class);
                           startActivity(intent);
                       }
                   }
                   // });
               }
           }
       });
   }
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

6 コードの詳細

edoooooo

edoooooo score 151

2016/11/01 12:52  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
改善後のActivitySecond.java
```java
public void onClick(View v) {
       if (v.getId() == R.id.ToLogin) {
           //この下をclassをログインページに変更する。Activityをもう一つ作る。
           Intent intent = new Intent(getApplication(), ActivityThird.class);
           startActivity(intent);
           //View viewを無くしたこれは多分表示するページだと思う.
           //だから、activity_activity_secondだと思う。
       } else if (v.getId() == R.id.NewUserSet) {
           this.NewUserSet(R.layout.activity_activity_second);
           // });
           // }
         
       
           //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
           // this.NewUserSet(R.id_content_activity_third);
       }
   }
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

5 コードの変更

edoooooo

edoooooo score 151

2016/11/01 12:52  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
改善後のActivitySecond.java
```java
public class ActivitySecond extends Activity implements View.OnClickListener {
public void onClick(View v) {
       if (v.getId() == R.id.ToLogin) {
           //この下をclassをログインページに変更する。Activityをもう一つ作る。
           Intent intent = new Intent(getApplication(), ActivityThird.class);
           startActivity(intent);
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
           //View viewを無くしたこれは多分表示するページだと思う.
           //だから、activity_activity_secondだと思う。
       } else if (v.getId() == R.id.NewUserSet) {
           this.NewUserSet(R.layout.activity_activity_second);
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
           // });
           // }
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       findViewById(R.id.ToLogin).setOnClickListener(this);
       findViewById(R.id.NewUserSet).setOnClickListener(this);
           //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
           // this.NewUserSet(R.id_content_activity_third);
       }
   }
 
 
           //ここに新規登録へのボタンを押した時を作る  
           @Override  
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。  
           //そのログインページはMainActivityだから、ActivityThirdはいらない。  
           public void onClick(View v) {  
                   //この下をclassをログインページに変更する。Activityをもう一つ作る。  
                   Intent intent = new Intent(getApplication(), ActivityThird.class);  
                   startActivity(intent);  
               }  
               //これはログイン専用ページ  
 
 
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。  
 
   public void NewUserSet(View view) {  
 
       //NewUserAddというデータベースのクラス  
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");  
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。  
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。  
 
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。  
       //この下のR.id.UserNameのところには、何書くべきなのか?  
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName  
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword  
 
       String userName=mUserName.getText().toString();  
       String password=mPassword.getText().toString();  
 
       obj2.put("Password", password);  
       obj2.put("UserName", userName);  
       obj2.saveInBackground(new DoneCallback() {  
           @Override  
           public void done(NCMBException e) {  
               if (e != null) {  
                   //保存失敗  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Error:" + e.getMessage())  
                           .setPositiveButton("OK", null)  
                           .show();  
               } else {  
                   //保存成功  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())  
                           .setPositiveButton("OK", null)  
                           .show();  
 
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける  
                              Intent intent = new Intent(getApplication(), ActivityThird.class);  
                              startActivity(intent);  
  }  
                       }  
      });  
  }  
}  
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

4 コードの追加

edoooooo

edoooooo score 151

2016/10/31 21:34  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```  
改善後のActivitySecond.java  
```java  
public class ActivitySecond extends Activity implements View.OnClickListener {  
 
   //変数を宣言する  
   private EditText mUserName;  
   private EditText mPassword;  
 
 
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.activity_activity_second);  
 
 
       //**************** APIキーの設定とSDKの初期化 **********************  
       NCMB.initialize(this, "");  
 
       findViewById(R.id.ToLogin).setOnClickListener(this);  
       findViewById(R.id.NewUserSet).setOnClickListener(this);  
 
   }  
 
 
           //ここに新規登録へのボタンを押した時を作る  
           @Override  
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。  
           //そのログインページはMainActivityだから、ActivityThirdはいらない。  
           public void onClick(View v) {  
                   //この下をclassをログインページに変更する。Activityをもう一つ作る。  
                   Intent intent = new Intent(getApplication(), ActivityThird.class);  
                   startActivity(intent);  
               }  
               //これはログイン専用ページ  
 
 
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。  
 
   public void NewUserSet(View view) {  
 
       //NewUserAddというデータベースのクラス  
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");  
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。  
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。  
 
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。  
       //この下のR.id.UserNameのところには、何書くべきなのか?  
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName  
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword  
 
       String userName=mUserName.getText().toString();  
       String password=mPassword.getText().toString();  
 
       obj2.put("Password", password);  
       obj2.put("UserName", userName);  
       obj2.saveInBackground(new DoneCallback() {  
           @Override  
           public void done(NCMBException e) {  
               if (e != null) {  
                   //保存失敗  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Error:" + e.getMessage())  
                           .setPositiveButton("OK", null)  
                           .show();  
               } else {  
                   //保存成功  
                   new AlertDialog.Builder(ActivitySecond.this)  
                           .setTitle("Notification from Nifty")  
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())  
                           .setPositiveButton("OK", null)  
                           .show();  
 
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける  
                              Intent intent = new Intent(getApplication(), ActivityThird.class);  
                              startActivity(intent);  
  }  
                       }  
      });  
  }  
}  
 
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

3 誤字

edoooooo

edoooooo score 151

2016/10/31 18:18  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方はif文の結果によってActivityを変更するかを決めたいです。
Androidアプリで2つのonClick()をif文で判断し、その片方は、別の保存が成功したかのif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
//変数を宣言する
private EditText mUserName;
private EditText mPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_second);
//**************** APIキーの設定とSDKの初期化 **********************
NCMB.initialize(this, "");
Button sendButton = (Button) findViewById(R.id.ToLogin);
sendButton.setOnClickListener(new View.OnClickListener() {
//ここに新規登録へのボタンを押した時を作る
@Override
//登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
public void onClick(View v) {
if (v.getId() == R.id.ToLogin) {
//この下のclassはログインページ
Intent intent = new Intent(getApplication(), ActivityThird.class);
startActivity(intent);
}
}
});
}
//このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
public void NewUserSet(View view) {
//NewUserAddというデータベースのクラス
final NCMBObject obj2 = new NCMBObject("NewUserAdd");
//ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
//Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
//ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
//この下のR.id.UserNameのところには、何書くべきなのか?
mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
String userName=mUserName.getText().toString();
String password=mPassword.getText().toString();
obj2.put("Password", password);
obj2.put("UserName", userName);
obj2.saveInBackground(new DoneCallback() {
@Override
public void done(NCMBException e) {
if (e != null) {
//保存失敗
new AlertDialog.Builder(ActivitySecond.this)
.setTitle("Notification from Nifty")
.setMessage("Error:" + e.getMessage())
.setPositiveButton("OK", null)
.show();
} else {
//保存成功
new AlertDialog.Builder(ActivitySecond.this)
.setTitle("Notification from Nifty")
.setMessage("Save successfull! with ID:" + obj2.getObjectId())
.setPositiveButton("OK", null)
.show();
//ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
newUserSetButton.setOnClickListener(new View.OnClickListener() {
//この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
@Override
public void onClick(View v) {
//本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
if (v.getId() == R.id.NewUserSet) {
Intent intent = new Intent(getApplication(), ActivityThird.class);
startActivity(intent);
}
}
});
}
}
});
}
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

2 誤字

edoooooo

edoooooo score 151

2016/10/31 18:17  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方はif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //ここにログインへのボタンを押した時を作る
                       //この下のonClickがNewUserSetボタンが押された時に起動するようにしたい
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

1 脱字

edoooooo

edoooooo score 151

2016/10/31 18:13  投稿

Androidアプリで2つのonClick()をif文で判断し、その片方はif文の結果によってActivityを変更するかを決めたいです。
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を移動したいです。
どうぞよろしくお願いします。
ActivitySecond.javaです。
```java
public class ActivitySecond extends Activity {
   //変数を宣言する
   private EditText mUserName;
   private EditText mPassword;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_activity_second);
       //**************** APIキーの設定とSDKの初期化 **********************
       NCMB.initialize(this, "");
       Button sendButton = (Button) findViewById(R.id.ToLogin);
       sendButton.setOnClickListener(new View.OnClickListener() {
           //ここに新規登録へのボタンを押した時を作る
           @Override
           //登録ボタンを押したら、登録完了のポップを出しログインへボタンを押しログインページに戻るようにする。
           //そのログインページはMainActivityだから、ActivityThirdはいらない。
           
           public void onClick(View v) {
               if (v.getId() == R.id.ToLogin) {
                   //この下をclassをログインページに変更する。Activityをもう一つ作る。
                   //この下のclassはログインページ
                   Intent intent = new Intent(getApplication(), ActivityThird.class);
                   startActivity(intent);
               }
               //これはログイン専用ページ
             
           }
       });
   }
   //このメソッドを呼び出せば、PasswordとUserIdがセットされるようにする。
   public void NewUserSet(View view) {
       //NewUserAddというデータベースのクラス
       final NCMBObject obj2 = new NCMBObject("NewUserAdd");
       //ここをPlanText(TextView)にユーザーが打ち込んだ値にする。
       //Buttonと同様にEditTextをインスタンス化し、EditTextから文字列を取得してください。
       //ここに新しく上で宣言した、UserNameとPasswordを(XMLのViewを)取得する。
       //この下のR.id.UserNameのところには、何書くべきなのか?
       mUserName=(EditText)findViewById(R.id.UserName);//ユーザーが入力するUserName
       mPassword=(EditText)findViewById(R.id.Password);//ユーザーが入力するPassword
       String userName=mUserName.getText().toString();
       String password=mPassword.getText().toString();
       obj2.put("Password", password);
       obj2.put("UserName", userName);
       obj2.saveInBackground(new DoneCallback() {
           @Override
           public void done(NCMBException e) {
               if (e != null) {
                   //保存失敗
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Error:" + e.getMessage())
                           .setPositiveButton("OK", null)
                           .show();
               } else {
                   //保存成功
                   new AlertDialog.Builder(ActivitySecond.this)
                           .setTitle("Notification from Nifty")
                           .setMessage("Save successfull! with ID:" + obj2.getObjectId())
                           .setPositiveButton("OK", null)
                           .show();
                   //ここにActivityの変更を入れればいきなり成功したらログイン画面のActivityThirdにいける
                   Button newUserSetButton=(Button)findViewById(R.id.NewUserSet);
                   newUserSetButton.setOnClickListener(new View.OnClickListener() {
                       //ここにログインへのボタンを押した時を作る
                       @Override
                       public void onClick(View v) {
                           //本当はThirdに行くのはToLoginだけどこの場合はNewUserSet
                           if (v.getId() == R.id.NewUserSet) {
                               Intent intent = new Intent(getApplication(), ActivityThird.class);
                               startActivity(intent);
                           }
                       }
                   });
               }
           }
       });
   }
}
```
  • Java

    16163 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    7404 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    4360 questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

  • Server+

    55 questions

    Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る