作者No (you stay there)
看板java
标题Re: [问题] 外部class如何知道内部class中的按钮被 …
时间Tue Jun 28 01:35:56 2011
※ 引述《liu2007 (薯)》之铭言:
: 玩家在Main Class 中按下按键後跳(new)出一个dialog Class
: dialog里面可以调整游戏动作所对应的按键(譬如↑↓←→改成WSAD之类的)
: 当玩家按下dialog中的确定键之後
: 呼叫这个dialog Class 的外部Main Class必须把dialog里的值读回去
: 目前想到两种作法
: 一种是polling
: Main class等到dialog isVisible == false 的时候读值
: 一种是把Main class的reference丢进去让dialog可以invoke mainObj.dospmthing();
: 是否有其他更乾净俐落的写法呢??
: polling感觉会拖慢程式的速度
: 而把上层物件的refer 给下层的物件,让下层的物件去控制上层的物件
: 用起来总觉得毛毛的....
: 就好像班长可以控制部队,而小兵却能控制班长
: 总觉得哪里不太对劲...
献丑一下,大概类似这样...
// 在适合的地方建立interface
public interface KeyMappingCallback {
public void saveKeyMapping(int keyCode);
}
// main class new dialog的部份,例如mDialog
mDialog.setCallback(new KeyMappingCallback(){
public void saveKeyMapping(int keyCode){
//store your key mapping config
}
});
// dialog 宣告一个 KeyMappingCallback interface 和它的 setter
private KeyMappingCallback mCallback;
public void setCallback(KeyMappingCallback mCallback) {
this.mCallback = mCallback;
}
// dialog 的确定按钮,例如 buttonOk
buttonOk.setOnClickListener(new OnClickListener(){
public void click(){
mCallback.saveKeyMapping(keyCode);
}
});
--
没开IDE,可能有打错
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.252.78.183