<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E1DFDF"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical">
<Button
android:id="@+id/korea"
android:layout_width="370dp"
android:layout_height="70dp"
android:layout_margin="25dp"
android:layout_marginStart="25dp"
android:gravity="center"
android:text="한국 차트"
android:onClick="myListener1"
android:backgroundTint="#E85021"
android:textColor="#FFFFFF" />
<Button
android:id="@+id/pop"
android:layout_width="370dp"
android:layout_height="70dp"
android:layout_margin="25dp"
android:layout_marginStart="25dp"
android:gravity="center"
android:text="POP 차트"
android:onClick="myListener2"
android:backgroundTint="#E85021"
android:textColor="#FFFFFF" />
<Button
android:id="@+id/japan"
android:layout_width="370dp"
android:layout_height="70dp"
android:layout_margin="25dp"
android:layout_marginStart="25dp"
android:gravity="center"
android:text="일본 차트"
android:onClick="myListener3"
android:backgroundTint="#E85021"
android:textColor="#FFFFFF" />
</LinearLayout>
<FrameLayout
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
이런 xml파일에 버튼 3개가 있고, 각 버튼을 누르면 그 버튼에 맞는 새창이 뜨도록 만들려고 하는데,
public class CategoryActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.category_layout);
// CategoryFragment를 화면에 표시합니다.
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragmentContainer, new HomeFragment())
.commit();
}
public void myListener1(View view) {
Intent intent = new Intent(getApplicationContext(), KoreaActivity.class);
startActivity(intent);
}
public void myListener2(View view) {
Intent intent = new Intent(getApplicationContext(), PopActivity.class);
startActivity(intent);
}
public void myListener3(View view) {
Intent intent = new Intent(getApplicationContext(), JapanActivity.class);
startActivity(intent);
}
}
이렇게 자바 파일이 있을때 onClick으로 설정해둔 버튼에 맞게 각각 설정된 class의 화면을 띄울려고 하는데 계속
/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.seeing, PID: 26529 java.lang.IllegalStateException: Could not find method myListener1(View) in a parent or ancestor Context for android:onClick attribute defined on view class com.google.android.material.button.MaterialButton with id 'korea' at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:479) at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:437) at android.view.View.performClick(View.java:7448) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1202) at android.view.View.performClickInternal(View.java:7425) at android.view.View.access$3600(View.java:810) at android.view.View$PerformClick.run(View.java:28305) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
이란 오류가 뜹니다...
public class KoreaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.korea_layout);
}
}
출력하게 할 자바에도 위 처럼 설정해 놨는데 왜 오류가 뜨는지 알 수가 없어 도움을 요청해 봅니다.
혹시 다른 코드도 필요하심 댓글로 달아드리겠습니다
제발 부탁드립니다!!