안녕하세요? ^^
커스텀뷰를 하나 만들었습니다.
이를 xml로 등록하여 사용하였습니다.
커스텀뷰에서 이벤트가 발생되면
MainActivity 속의 함수를 호출하고 싶습니다.
아~ 제가 검색능력이 너무 달리나봅니다. 못찾겠어요 ㅜ.ㅜ
## MainActivity.java 내용
package kr.co.test.customview;
public class MainActivity extends Activity
{
중략
public void
callme() {
// MainActivity의 내부 변수값 변경하는 내용
}
}
## Web_View.java 내용
package kr.co.test.customview;
public class Web_View extends WebView
{
중략
// 특정이벤트 받았을 시
MainActivity의 callme함수를 호출해야 함
// (이 부분을 어떻게 처리해야 하는지
모르겠습니다.)
}
## activity_main.xml 내용
<kr.co.test.customview
android:id="@+id/webview"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:visibility="visible" />
읽어주셔서 감사드립니다.
다음과 같이 해결하였습니다.
감사합니다.
## MainActivity.java 내용
public class MainActivity extends Activity
{
중략
@Override
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("kr.co.test.customview.GO");
registerReceiver(bcGO, filter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(bcGO);
}
BroadcastReceiver bcGO = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String msg = intent.getExtras().getString("msg");
Toast.makeText( MainActivity.this, msg, Toast.LENGTH_SHORT).show();
}
};
}
## Web_View.java 내용
package kr.co.test.customview;
public class Web_View extends WebView
{
중략
// 특정이벤트 받았을 시 MainActivity의 callme함수를 호출해야 함
Intent intent = new Intent();
intent.setAction("kr.co.test.customview.GO");
intent.putExtra("msg", "할룽");
myContext.sendBroadcast( intent );
}
SetMainHandler 또는 setOnListener 등의 메소드를 만들어서,
MainActivity로 부터 해당 Handler또는 리스터를 등록하도록 하고, view 내에서 호출하시면 되지 않을까요?