Newer
Older
IrisClient / app / src / main / java / org / ntlab / irisclient / CreateRoomActivity.java
k-fujii on 6 Oct 2022 4 KB CreateRoomActivityの作成
  1. package org.ntlab.irisclient;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.annotation.Nullable;
  5. import androidx.appcompat.app.ActionBar;
  6. import androidx.appcompat.app.AppCompatActivity;
  7.  
  8. import android.content.DialogInterface;
  9. import android.content.Intent;
  10. import android.os.Bundle;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14. import android.widget.Button;
  15. import android.widget.ImageButton;
  16. import android.app.AlertDialog;
  17. import android.widget.EditText;
  18.  
  19. import org.ntlab.irisclient.entities.RoomJson;
  20. import org.ntlab.irisclient.resources.RoomsRest;
  21.  
  22. import retrofit2.Call;
  23. import retrofit2.Callback;
  24. import retrofit2.Response;
  25. import retrofit2.Retrofit;
  26. import retrofit2.converter.jackson.JacksonConverterFactory;
  27.  
  28. public class CreateRoomActivity extends AppCompatActivity {
  29.  
  30. @Override
  31. protected void onCreate(Bundle savedInstanceState) {
  32. super.onCreate(savedInstanceState);
  33. setContentView(R.layout.activity_create_room);
  34.  
  35. //----------------------------------------------------------------------------------------------------------------------------------
  36. //サーバーとの通信の初期化
  37. Retrofit retrofit = new Retrofit.Builder()
  38. .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/iris/")
  39. .addConverterFactory(JacksonConverterFactory.create())
  40. .build();
  41. final RoomsRest roomRest = retrofit.create(RoomsRest.class);
  42.  
  43.  
  44. //----------------------------------------------------------------------------------------------------------------------------------
  45. //アクションバーの非表示
  46. ActionBar actionBar = getSupportActionBar();
  47. if (actionBar != null) {
  48. actionBar.hide();
  49. }
  50. //------------------------------------------------------------------------------------------------------------------------------------------
  51. //バックボタンを押した場合、前の画面に遷移
  52.  
  53. ImageButton imageButton = (ImageButton) findViewById(R.id.backButton); // view経由でimageButtonを探す
  54. imageButton.setOnClickListener(new View.OnClickListener() {
  55. public void onClick(View v) {
  56. Intent i = new Intent(v.getContext(), MainActivity.class);
  57. startActivity(i);
  58. }
  59. });
  60.  
  61. //-------------------------------------------------------------------------------------------------------------------------------------------
  62.  
  63. //ボタンをクリックすると、部屋を作る次の画面に遷移
  64. Button nextButton = findViewById(R.id.CreateRoomButton);
  65. nextButton.setOnClickListener(new View.OnClickListener() {
  66. public void onClick(View v) {
  67. EditText text = (EditText) findViewById(R.id.nicknameEditText);
  68. String nickname = text.getText().toString();
  69.  
  70. //ニックネームが入力されていない場合エラーメッセージを表示する
  71. if (text.getText().toString().isEmpty()) {
  72. text.setError("ニックネームを入力されていません");
  73.  
  74. //ニックネームが入力されていれば次の画面へ
  75. } else {
  76. //サーバーとの通信のために呼び出す
  77. Call<RoomJson> call = roomRest.makeRooms(nickname);
  78. call.enqueue(new Callback<RoomJson>() {
  79. //onResponseで成功
  80. public void onResponse(Call<RoomJson> call, Response<RoomJson> response) {
  81. if (response.isSuccessful()) {
  82. //ridとnicknameをIrisへ
  83. String rid = response.body().getRid();
  84. ((Iris) getApplication()).setRid(rid);
  85. ((Iris) getApplication()).setNickname(nickname);
  86. //次の画面へ遷移
  87. Intent intent = new Intent(CreateRoomActivity.this,OwnerRoomActivity.class);
  88. intent.putExtra("nickname", nickname);
  89. startActivity(intent);
  90. }
  91. }
  92. //onFailureで失敗
  93. public void onFailure(Call<RoomJson> call, Throwable t) {
  94. }
  95. });
  96.  
  97. }
  98. }
  99. });
  100.  
  101. }
  102. }
  103.