버튼을 클릭을 하니까 다음과 같이 에러가 출력이 되었습니다
java.lang.IllegalStateException: Could not find method right_btn(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'right_btn'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:423)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:380)
at android.view.View.performClick(View.java:6897)
at android.widget.TextView.performClick(TextView.java:12693)
at android.view.View$PerformClick.run(View.java:26100)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
fragment에서 다음과 같이 작성을 하였습니다.
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View RootView = inflater.inflate(R.layout.content_main, container, false);
// onCreateView = Layout을 inflater하여 View작업을 하는 곳
final ArcSeekBar arcSeekBar = (ArcSeekBar)RootView.findViewById(R.id.seekArc);
mhztext = (TextView)RootView.findViewById(R.id.hztext);
mtimebar = (TextView)RootView.findViewById(R.id.timebar);
mtimerbar = (ProgressBar) RootView.findViewById(R.id.timerbar);
mBtn1 = (Button)getView().findViewById(R.id.btn1);
mBtn2 = (Button)getView().findViewById(R.id.btn2);
mBtn3 = (Button)getView().findViewById(R.id.btn3);
mBtn4 = (Button)getView().findViewById(R.id.btn4);
mmdBtn2 = (Button)getView().findViewById(R.id.mdbtn2);
mmdBtn3 = (Button)getView().findViewById(R.id.mdbtn3);
mstartbtn = (Button)getView().findViewById(R.id.startbtn);
mleft_btn = (Button)getView().findViewById(R.id.left_btn);
mright_btn = (Button)getView().findViewById(R.id.right_btn);
mhz_left=(Button)getView().findViewById(R.id.hz_left);
mhz_right=(Button)getView().findViewById(R.id.hz_right);
mBtnSend.setOnClickListener(this);
mBtn1.setOnClickListener(this);
mBtn2.setOnClickListener(this);
mBtn3.setOnClickListener(this);
mBtn4.setOnClickListener(this);
mmdBtn2.setOnClickListener(this);
mmdBtn3.setOnClickListener(this);
mstartbtn.setOnClickListener(this);
mleft_btn.setOnClickListener(this);
mright_btn.setOnClickListener(this);
mhz_left.setOnClickListener(this);
mhz_right.setOnClickListener(this);
arcSeekBar.setProgress(0);
mhztext.setText("");
return RootView;
}
@Override
public void onClick(View v) {switch(v.getId()) {
// 추가 부분 버튼 클릭시 해당되는 값 전송
// 수평 모드
// 약 진동
case R.id.btn1:
message = "h01";
if(message != null && message.length() > 0)
sendMessage(message);
break;
// 강 진동
case R.id.btn2:
message = "h02";
if(message != null && message.length() > 0)
sendMessage(message);
break;
// 약 + 강 진동
case R.id.btn3:
message = "h03";
if(message != null && message.length() > 0)
sendMessage(message);
break;
// 수직 모드
// 00(시간)만큼 수평모터 작동 후 다시 나옴
case R.id.mdbtn2:
message = "s";
if(message != null && message.length() > 0)
sendMessage(message);
break;
// 엑츄레이터 양쪽으로 번갈아가면서 나옴
case R.id.mdbtn3:
message = "s";
if(message != null && message.length() > 0)
sendMessage(message);
break;
// 동작 버튼
case R.id.startbtn:
message = "s";
if(message != null && message.length() > 0)
sendMessage(message);
break;
// 시간 -10초
case R.id.left_btn:
count-=10;
mtimebar.setText(""+count);
break;
// 시간 +10초
case R.id.right_btn:
count+=10;
mtimebar.setText(""+count);
break;
// Hz -1
case R.id.hz_left:
count--;
mhztext.setText(""+count);
break;
// Hz +1
case R.id.hz_right:
count++;
mhztext.setText(""+count);
break;
}