###前提・実現したいこと
囲碁問題を出題するandroidアプリを開発中なのですが、データクラスの扱い方で躓いたので質問させて頂きます。
データクラスには3つのint型変数を宣言しており、他クラスからコンストラクタを使って格納しています。
流れとしては以下のようになっています。
問題表示画面に関するクラス(Problem.class)から、問題データを1問ごとのデータに分解するクラス(GoDataParse.class)のコンストラクタを使って渡す。
↓
GoDataParseクラスで分解したデータをGoDataParseクラス内で、データクラス(Zahyo.class)のコンストラクタを使って渡す。
↓
Zahyoクラスに格納したデータをProblemクラスからgetterを使って呼び出す。
↓
しかし、何もデータが格納されていない。
###発生している問題
コンストラクタを使ってデータを格納したはずが、getterで呼び出せない状況です。
###該当のソースコード
Problem.class
Java
1@Override 2 protected void onCreate(@Nullable Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.problem_screen); 5 6 board = new Board(); 7 zahyo = new Zahyo(); 8 9 Intent intent = getIntent(); 10 String number = intent.getStringExtra("number"); 11 String level = intent.getStringExtra("level"); 12 String goDataP = intent.getStringExtra("goDataP"); 13 String goDataA = intent.getStringExtra("goDataA"); 14 15 gdp = new GoDataParse(goDataP, goDataA); 16 17 board.initStone(zahyo.getStoneColorP(), zahyo.getColP(), zahyo.getRowP()); 18 19 //以下省略
GoDataParse.class
Java
1 private Zahyo zahyo; 2 3 public GoDataParse(String goDataP, String goDataA) { 4 5 splitZahyoP(goDataP); 6 splitZahyoA(goDataA); 7 } 8 9 private void splitZahyoP(String goDataP) { 10 11 if("黒なら"){ 12 //分解処理は長いので省略 13 initStoneP(zahyoP, BLACK); 14 } 15 if("白なら"){ 16 //分解処理は長いので省略 17 initStoneP(zahyoP, WHITE); 18 } 19 } 20 21 private void splitZahyoA(String goDataA) { 22 23 if("黒なら"){ 24 //分解処理は長いので省略 25 initStoneA(zahyoA, BLACK); 26 } 27 if("白なら"){ 28 //分解処理は長いので省略 29 initStoneA(zahyoA, WHITE); 30 } 31 } 32 33 private void initStoneP(String zahyoP, int stoneColorP) { 34 //ここでデータクラスのコンストラクタにデータを渡す 35 zahyo = new Zahyo(stoneColorP, intChanger(zahyoP.charAt(0)), intChanger(zahyoP.charAt(1))); 36 } 37 38 private void initStoneA(String zahyoA, int stoneColorA) { 39 //ここでデータクラスのコンストラクタにデータを渡す 40 zahyo = new Zahyo(stoneColorA, intChanger(zahyoA.charAt(0)), intChanger(zahyoA.charAt(1))); 41 }
Zahyo.class
Java
1 private int colP; 2 private int rowP; 3 private int stoneColorP; 4 private int colA; 5 private int rowA; 6 private int stoneColorA; 7 8 public Zahyo() { 9 10 } 11 12 public Zahyo(int stoneColor, int col, int row) { 13 this.stoneColorP = stoneColor; 14 this.colP = col; 15 this.rowP = row; 16 } 17 18 //getterとsetterがここに入る
###試したこと
コンストラクタではなく、setterでデータを格納するのも試してみましたがダメでした。
###補足情報(言語/FW/ツール等のバージョンなど)
言語:Java
開発環境:AndroidStudio2.2.3
プログラミング歴:5ヶ月
回答1件
あなたの回答
tips
プレビュー