2011-08-04 11 views
1

から、互いの活動の方法コードスニペットで、ここでは別のアクティビティ

class1.java

public class1 extends ListActivity { 


    public class1(){} 

    public testMethod() 
    { 
     Toast.makeText(getApplicationContext(),"Inside Method",Toast.LENGTH_SHORT).show(); 
    } 

} 

class2.java

public class2 extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

      class1 c = new class1(); 
      c.testMethod(); 

    } 

} 

呼び出すと、私はから "のtestMethod" を呼びたいですclass2、現在、次のエラーが発生しています。

08-04 22:59:27.428: ERROR/AndroidRuntime(1224): FATAL EXCEPTION: main 
08-04 22:59:27.428: ERROR/AndroidRuntime(1224): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assistant/com.assistant.AssistantActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.assistant/com.assistant.addNew}: java.lang.NullPointerException 

ありがとうございます。

Iは

Tab1をアクティビティ(class2.java)=を拡張し、2つのタブが持っ> DB

にエントリを追加するために、フォームが含まTAB2はListActivity(class1.java)=>が追加されたエントリのリストが含まれて延びています

Tab1でエントリが追加されるたびにTab2を更新したいのですが、class2.javaにメソッドを追加して、更新されたDBエントリでリストを埋めるようにしました。

これで、エントリが追加された後、class1.javaからそのメソッドを呼び出すことにしました。

答えて

0

、ソリューションを手に入れた2つ目のタブの「onResume()」内のコードなので、メソッドを呼び出す必要はありませんを書きました。

0

このメソッドを静的メソッドにすることを検討してください。 このようなアクティビティをインスタンス化することが許可されているかどうかはわかりませんが、両方をAndroidマニフェストに追加することを忘れませんでしたか?

おそらくgetApplicationContext()nullです。

+0

はい、静的メソッドを使用しようとしましたが、メソッドではインスタンス属性をいくつか使用する必要があるため、この場合は静的メソッドを使用できません。そうでなければ、良い解決策です。ありがとう。 – Gaurang

0

testMethodは、(例えば、ボイドなど)戻り値の型を必要とする:

public void testMethod(){ 
    //your code 
} 
+0

はい、void戻り値の型を追加しましたが、同じエラーが発生します。 – Gaurang

関連する問題