お世話になります。
入力項目8つから、16進数への変換して、表示することで困っております。
###前提・実現したいこと
AndroidStudioで、設定アプリを作っています。 実装1 --------- 入力項目8(チェックボックス8)の設定から、 表示項目へ「16進数の表示」を行う処理を実装しております。 →こちらは、できました。 実装2 --------- 実装1を元に、 入力項目8(ラジオ4+チェックボックス4)の設定から、 表示項目へ「16進数の表示」を行う処理を実装しております。
###該当のソースコード
実装1 for (int ij = 0; ij < maxCkRow; ij++) { cB[ii][ij].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String st = view.getTag().toString(); int ii = parseInt(st.substring(0, 1)); int ij = parseInt(st.substring(1, 2)); //----- CheckBoxのON/OFFを数値化 if (cB[ii][ij].isChecked() == true) { SetData[ii + 5] |= (int) Math.pow(2, ij); // BitSet System.out.println("ii:"+ ii +"ij:"+ ij + "SetData:"+SetData[5+ii]); } else { SetData[ii + 5] &= (byte) ~(byte) Math.pow(2, ij); // BitReset System.out.println("ii:"+ ii +"ij:"+ ij + "SetData:"+SetData[5+ii]); } et[ii].setText(String.format(" %02X ", Integer.valueOf(SetData[ii + 5]))); // 16進表示 } }); inLinearLayout[ii].addView(cB[ii][ij], new LinearLayout.LayoutParams(wc, wc)); // チェックボックス }
###試したこと
・0~3は、ラジオの値 ・4~7は、チェックボックスの値 から、16進数を表示するように変更。 ・教授お願いできないでしょうか。 for (int ij = 0; ij < 4; ij++) { rG[0].addView(rB[ij], new LinearLayout.LayoutParams(wc, wc)); inLinearLayout[0].addView(rG[0], new LinearLayout.LayoutParams(wc, wc)); //---- ラジオ ボタン クリック rB[ij].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { for (int ik = 0; ik < maxCkRow; ik++) { // 入力項目は、0~8まで for (int ikk = 4; ikk < maxCkRow; ikk++) { // チェックボックスは、4~8まで String st = view.getTag().toString(); int ii = parseInt(st.substring(0, 1)); ik = parseInt(st.substring(1, 2)); //----- CheckBoxのON/OFFを数値化 if (rB[ij].isChecked() == true || cB[ii][ikk].isChecked() == true) { SetData[ii + 5] |= (int) Math.pow(2, ik); // BitSet System.out.println("ii:" + ii + "ij:" + ik + "SetData:" + SetData[5 + ii]); } else { SetData[ii + 5] &= (byte) ~(byte) Math.pow(2, ik); // BitReset System.out.println("ii:" + ii + "ij:" + ik + "SetData:" + SetData[5 + ii]); } } } et[0].setText(String.format(" %02X ", Integer.valueOf(SetData[ii + 5]))); // 16進表示 } }); }
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
「コードタグ」はなるべくつけるではなく「必ずつける」ようにしましょう。以前の質問にはついてますのでやり方はご存知のはずです。
```ここに言語を入力 コード ```を追加しました。以前の質問もご確認いただき、ご教授ありがとうございます。
「困っている点」は想像つきますが「どういう状態のとき」「どういう結果が期待」でそれに対して「実際の動作がどうなるか」「原因をどう推測してなぜ解決できないのか」など「状況と困っている点を明記」してください。ただ「困っている」としか書かれていない質問はよくありません。「https://teratail.com/help/question-tips」を参照ください。
ご教授ありがとうございます。具体的に要点を記述するヒントがわかりました。参照を勉強して、回答がいただける質問をする力を身に着けていきます。要点ができましたら、編集しなおします。
回答3件
あなたの回答
tips
プレビュー