누군가 내 문제를 해결할 수 있는지 묻습니다. 자바 클래스에 사용자 지정 대화 상자가 있습니다. 이 사용자 정의 대화 상자에는 버튼을 누르면 내 액티비티 클래스의 메서드가 호출됩니다. 내가 아무 일도 일어나지 않는 코드를 실행하면 메소드가 결코 호출되지 않고 에러가 발생하지 않는 것처럼 보입니다. 자바 클래스가 오버레이 아이템에 사용되고 있기 때문에 이런 방식으로 시도하는 이유가 있습니다. 아래는 내가 가지고있는 코드의 SNIPPIT이며, overlayitem자바 클래스에서 호출하는 작업 메서드
public boolean onTap(int index) {
OverlayItem item = mapOverlays.get(index);
Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog);
dialog.setTitle(item.getTitle());
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText(item.getSnippet());
Button CallButton = (Button) dialog.findViewById(R.id.CallButton);
CallButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try {
TheActivityClass.showMessage();
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
}
);
dialog.show();
return true;
}
활동 클래스
public void showMessage(){
Context context = getApplicationContext();
CharSequence text = "I have just been pressed";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
showMessage에 로그 문 또는 sysout 문을 작성하고 logcat에 반영되었는지 확인하십시오. –
당신이 뭔가를 로깅하여 시작합니다. 정적이 아닌 메서드를 정적으로 호출한다고 생각하십시오. 마지막으로,보기에서 활동에 대한 참조가 무엇인지 확인하십시오 (컨텍스트가있을 수도 있습니다). – njzk2
컴파일 할 수 있습니까? 정적 (클래스) 메서드를 호출하려고하지만 인스턴스 메서드 만 선언 된 것처럼 보입니다. – tidbeck