2012-08-30 40 views
0

(首先,我要指出,我的專業領域是HTML5(和PHP/ColdFusion的)和我在的Java/Android的初學者)調用子類中「super.loadUrl」

裏面我onCreateOptionsMenu我具有以下代碼來處理android操作欄中搜索操作中的查詢更改。

final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
     public boolean onQueryTextChange(String newText) { 
      //I want to call super.loadUrl from here 
      return true; 
     } 
}; 

的問題是,我想每次文本更改調用的PhoneGap的使用loadURL方法,但是這是不可能的,因爲super貌似是指別的東西。我可能能夠谷歌這個,如果我甚至只知道上面的建築叫什麼(這似乎是某種子類定義),但因爲我甚至不知道,並且super.super是不允許的我是總損失。

參考:我的類是什麼樣子

public class MainActivity extends DroidGap implements ActionBar.OnNavigationListener { 

這就是使用loadURL來自(我自己也嘗試在DroidGap.loadUrl方向的東西)。

+0

你的類層次結構是什麼樣的? queryTextListener方法是什麼類? –

+0

當我在10分鐘前編輯我的答案時,'queryTextListener'在'onCreateOptionsMenu'中,它位於我的'MainActivity'中,它擴展了'DroidGap'(DroidGap以某種方式公開loadUrl,但我不確定droidgap.java:https: //git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob_plain;f=framework/src/org/apache/cordova/DroidGap.java;hb=HEAD) –

回答

2

我認爲你的問題可能會遺漏一些關鍵點。 Super指的是當前對象的超類。在你的情況,當前的目標是queryTextListener,和超是SearchView.OnQueryTextListener

編輯基於以下注釋: 在您含有方法(相同的範圍內最終SearchView.OnQueryTextListener queryTextListener ...)添加一個最終參考它,例如:

final DroidGap droidGap = this; 
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
    public boolean onQueryTextChange(String newText) { 
     droidGap.loadUrl(...); 
     return true; 
    } 

};

+0

我的MainActivity擴展了DroidGap,它以某種方式暴露loadUrl(儘管我無法在https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob_plain中找到它; f = framework/src/org/apache/cordova/DroidGap.java; hb = HEAD ...正如我所提到的,我在java中相當新,我得到了一般的超類,並且我也得到了SearchView.OnQueryTextListener以某種方式在課堂內創建了一個類,但我不知道如何獲得對我的'原始'父類的引用) –

+0

基於上面進行了更新。 – Taylor

+0

非常感謝!那正是我期待的,但卻不知道如何去做。我甚至在'... = super;'的行上嘗試了一些東西,但我仍然不明白爲什麼這會起作用(因爲在同一範圍內,我必須使用super.loadUrl而不是this.loadUrl),但是非常感謝許多! :D –