2

findViewById(R.id.pin1) を使用して各ボタンを検索する init メソッドがあり、メソッドが Bluetooth 出力ストリームに書き込む onclick メソッドを設定します。

    Button myButton = (Button) findViewById(R.id.pin1);
    myButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String msg = "1".toString();
            try {
                mmOutStream.write(msg.getBytes());
            } catch (IOException e) {
                error();
            }
        }
    });

非常に文字通り、私が変更するのは 1 から 2 などです。したがって、次のコード セグメントは次のとおりです。

    Button myButton = (Button) findViewById(R.id.pin2);
    myButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String msg = "2".toString();
            try {
                mmOutStream.write(msg.getBytes());
            } catch (IOException e) {
                error();
            }
        }
    });

string pinButton = "pin" + i.toString() のような文字列を作成してから R.id.pinButton を作成するなど、いくつか試してみましたが、機能しません。(つまり、i は、コードを囲んだ forloop 内にあります)

4

3 に答える 3

-2

これを行うには、ボタンにタグを付けます。ビューにタグを付けると、後で取得できるようにデータを割り当てることができます。

Button pin1 = (Button) findViewById(R.id.pin1);
Button pin2 = (Button) findViewById(R.id.pin2);
pin1.setTag("1");
pin2.setTag("2");

OnClickListener myOnClickListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        String msg = v.getTag();
        try {
            mmOutStream.write(msg.getBytes());
        } catch (IOException e) {
            error();
        }
    }
}
pin1.setOnClickListener(myOnClickListener);
pin2.setOnClickListener(myOnClickListener);
于 2013-05-03T01:34:33.940 に答える