마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 코드오류 질문드립니다 ㅠ

0 추천

안녕하세요 최근 안드로이드 공부를 시작한 초보입니다.

최근 블투투스 연결 관련 공부중인데 빨간색으로 뜨면서

Error:(44, 40)error: cannot find symbol variable mClickListener 이와같은 오류가 뜹니다..

코드를 어떻게 수정을 해줘야 할까요 고수님들 조언부탁드립니다. 

 

public class MainActivity extends Activity {

    private static final String TAG = "MAIN";
    private static final int REQUEST_CONNCECT_DIVICE = 1;
    private static final int REQUEST_ENABLE_BT = 2;

    private Button btn_Connect;
    private BluetoothService bluetoothService_obj = null;

    private Handler mHandler = new Handler() {
        //핸들러의 기능을 수행할 클래스(handleMessage)
        public void handleMessage(Message msg) {
            //BluetoothService로부터 메시지(msg)를 받는다.
            super.handleMessage(msg);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e(TAG, "onCreate");
        setContentView(R.layout.activity_main);

        btn_Connect = (Button) findViewById(R.id.bluetooth_connect);
        btn_Connect.setOnClickListener(mClickListener);

        if (bluetoothService_obj == null) {
            bluetoothService_obj = new BluetoothService(this, mHandler);
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.d(TAG, "onActivityResult" + resultCode);
        // TODO Auto-generated method stub

        switch (requestCode) {
            case REQUEST_ENABLE_BT:
                //When the request to enable Bluetooth returns
                if (resultCode == Activity.RESULT_OK)  //블루투스가 Off일때 연결을 눌러 활성화 시켰을 경우
                {
                    bluetoothService_obj.scanDevice(); //기기검색을 요철하는 메소드 추가
                } else//취소를 눌렀을 때
                {
                    Log.d(TAG, "Bluetooth is not enable");
                }
                break;

            case REQUEST_CONNCECT_DIVICE: //DeviceListACtivity returns with a device to connect
                if (requestCode == Activity.RESULT_OK) {
                    //bluetoothService_obj.getDeviceinfo(data):
                }
                break;
        }
        View.OnClickListener mClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //분기.
                switch (v.getId()) {

                    case R.id.bluetooth_connect:  //모든 블루투스의 활성화는 블루투스 서비스 객체를 통해 접근한다.

                        if (bluetoothService_obj.getDeviceState()) // 블루투스 기기의 지원여부가 true 일때
                        {

                            bluetoothService_obj.enableBluetooth();  //블루투스 활성화 시작.
                        } else {
                            finish();
                        }
                        break;

                    default:
                        break;

                }//switch
            }
        };
    }
}

신전떡볶이 (480 포인트) 님이 2016년 10월 14일 질문

1개의 답변

0 추천
 
채택된 답변

View.OnClickListener mClickListener  가 onActivityResult 메소드 안에 들어가 있어서 지역변수로 인식이 되고 있네요. 해당 객체를 onActivityResult 밖으로 빼셔서 멤버객체로 만드세요.

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case REQUEST_ENABLE_BT:
                break;

            case REQUEST_CONNCECT_DIVICE:
                break;
        }
} //<-- 추가하셔서 onActivityResult()를 닫으세요.




View.OnClickListener mClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //
            }
};

 

spark (227,930 포인트) 님이 2016년 10월 14일 답변
신전떡볶이님이 2016년 10월 15일 채택됨
...