2011-02-25 25 views
0

我想從另一個類調用方法,但我得到一個異常錯誤。從Android中的其他類調用方法

我有兩個類和類1是主類

類1具有onclick方法,其調用從另一個類onclick的方法。

我有文本框和edittexts在類中聲明1.

2類具有以下功能:對於這些,並使用if語句。

我從類2擴展類1,因此類2使用變量。

我可以從android中的其他類調用方法的方式是什麼?

此刻,我只需要調用從1級2級的方法通過使用:

class1.method(); 

,但這似乎並不奏效。感謝任何建議,謝謝。

編輯:

我在第1類現在已經創建了一個變量:

static class2 object; 

從此我onclick撥打:

object.class2method(); 

我得到一個NullPointerException錯誤的感謝。

+0

你的代碼是否被編譯?你得到什麼樣的錯誤? – 2011-02-25 13:59:35

+0

你能否粘貼更多的代碼?爲什麼它不起作用?它拋出什麼錯誤? – Cristian 2011-02-25 14:00:24

+0

**「我從第2類擴展第1類,因此第2類使用這些變量。」 **你從第二類擴展了第一類......那麼第二類如何使用第一類定義的變量...... – 2011-02-25 14:07:29

回答

3

如果我正確地理解了您的問題,如果您想調用擴展類中的方法,則需要確保這些方法是公開的或受保護的。

還省略了類名,例如,只需要調用method()class.method()

只是爲了細說了一些,這裏是一些代碼,我剛熟了起來:

class class1 { 
    private void privateMethod() { 
     // do nothing 
    } 
    protected void protectedMethod() { 
     // do nothing 
    } 
    public void publicMethod() { 
     // do nothing 
    } 
} 
class class2 extends class1 { 
    private void testMethod() { 
     privateMethod(); // error - not visible 
     protectedMethod(); // works 
     publicMethod(); // also works 
    } 
} 
2

編輯(因爲凱文刪除以前回答)

Android在這種情況下有點具體..

如果你的一個類是Activity,另一個是「helper」類,情況意味着你需要在Activity類中創建一個「helper」類的實例。喜歡的東西

private Helper helper = new Helper(this); 

,比您可以通過使用召喚幫手類的方法,隨時隨地在你的活動:

helper.nameOfMethod(requiredParameters); 

可能發生這樣的ClassA的是活動(所以它擴展的Android Activity類)和ClassB也是Activity,但擴展了ActivityA。在這種情況下,只需通過方法名稱調用ActivityA,就可以使用ActivityB中的ActivityA方法(不需要明確寫入方法的存儲位置)。

methodFromActivityB(parameters); 

希望現在能夠更容易理解它。

1

我知道這是有點晚了,但花了2整天以找到一個解決方案,這其中肯定對我的作品,這可能是對他人有用:

  1. 內定義所需​​的功能第一類(MainActivity延伸活性),爲靜態:

    public static int getScreenH(){ 
        Integer H = Sheight; 
        return H; 
    } 
    
  2. 然後在其他類(類ResizeTextView延伸的TextView)調用函數:

    Integer hh = MainActivity.getScreenH(); 
    

就是這樣!問題在於調用類是TextView的擴展,所以在Activity中沒有可用的方法!

相關問題