私は単純なアプリを作ろうとしています。
私はその行に1つの行と7つのボタンを持つテーブルを持っています。
私は2次元配列は必要ないと知っていますが、私はそれを使いたいと思います。
私は後でそれを非常に簡単に拡張することができます。ボタンIDを取得するためにgetResources()。getIdentifierを使用する方法?
私が試してみて、ボタンからリソースIDを取得するために
int resID = getResources().getIdentifier("button" + i + h, "button", getPackageName());
を使用しています。
私のボタンの名前は "button00、button01、button02"(正確にはR.javaにあります)
数値はそれぞれ行と列を表します 私はこの前にこれを使っているのを見ましたが、私はそれが仕事を得ることはできない理由。
ここではMain_Activity
public class MainActivity extends Activity implements View.OnClickListener {
lights mlights = new lights(1, 7);
Button Button[][] = new Button[mlights.numRows][mlights.numCol];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mlights.createButtonListeners(Button);
}
@Override
public void onClick(View v) {
}}
用ライトクラスの私のコード
public class lights extends Activity implements OnClickListener {
public int numRows;
public int numCol;
public lights(int rows, int col) {
numRows = rows;
numCol = col;
}
public void createButtonListeners(Button[][] button) {
for (int i = 0; i < numRows; i++) {
for (int h = 0; h < numCol; h++) {
int resID = getResources().getIdentifier("button" + i + h, "button", getPackageName());
button[i][h] = (Button) findViewById(resID);
button[i][h].setOnClickListener((View.OnClickListener) this);
Toast.makeText(getBaseContext(), "Made listener", Toast.LENGTH_LONG).show();
}
}
}
public void reset(Array buttons[][]) {
for (int r = 0; r < numRows; r++) {
for (int c = 0; c < numCol; c++) {
//havnt got this far
}
}
}
public int wasButtonPressed() {
for (int row = 0; row < numRows; row++) {
}
return 0;
}
@Override
public void onClick(DialogInterface dialog, int which) {
}}
コードである私が持っていますコードを入力するとエラーは発生しませんが、実行されません。
可能な方法で私を修正してください。
[Androidの文字列からリソースIDを取得していますか?](http://stackoverflow.com/questions/4427608/android-getting-resource-id-from-string) –