私のプロジェクトには2つのクラスがあり、最初にアクティビティを拡張し、他のクラスを拡張します。アクティビティではなく他のクラスからメインアクティビティのメソッドを呼び出す方法を教えてください。ここに私のコード:
アクティビティ クラスの拡張
public class Isign extends Activity { private static final String TAG = "Sample::Activity"; public Isign() { Log.i(TAG, "Instantiated new " + this.getClass()); } @Override protected void onCreate(Bundle savedInstanceState) { Log.i(TAG, "onCreate"); requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); a = new IsignView(this); LinearLayout lv = new LinearLayout(this); lv.setOrientation(LinearLayout.VERTICAL); LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); tv = new TextView(this); tv.setTextSize(20); tv.setText("RESULT : "); tv.setLayoutParams(textViewParams); lv.addView(tv); lv.addView(a); setContentView(lv);} public void update_kom(String d){ Log.i("asd", "asd"); tv.setText(""); tv.setText("RESULT : " + d); }
活動クラスを延長しない
public class IsignView extends IsignCvViewBase { public IsignView(Context context) { super(context); try { } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "Failed to load cascade. Exception thrown: " + e); } }
ちなみに、私はこの方法を使ってメインアクティビティからメソッドを呼び出しました:
new Isign().update_kom("bottle");
そして、私はこのエラー LogCat を取得します:
07-05 06:52:22.290: E/AndroidRuntime(2708): FATAL EXCEPTION: Thread-12
07-05 06:52:22.290: E/AndroidRuntime(2708): java.lang.NullPointerException
07-05 06:52:22.290: E/AndroidRuntime(2708): at
org.baharsan.isign.Isign.update_kom(Isign.java:86)
07-05 06:52:22.290: E/AndroidRuntime(2708): at
org.baharsan.isign.view.IsignView.processFrame(IsignView.java:353)
07-05 06:52:22.290: E/AndroidRuntime(2708): at
org.baharsan.isign.cv.IsignCvViewBase.run(IsignCvViewBase.java:101)
07-05 06:52:22.290: E/AndroidRuntime(2708): at
org.baharsan.isign.view.IsignView.run(IsignView.java:557)
07-05 06:52:22.290: E/AndroidRuntime(2708): at
java.lang.Thread.run(Thread.java:1019)
ご回答ありがとうございます。私の問題と同様の質問が見つからないのに、この質問が繰り返された場合は申し訳ありません。他の問題は、メインアクティビティから他のクラスのメソッドを呼び出す方法を教えてくれるだけですが、この質問は反対です。「他のクラスからメインアクティビティのメソッドを呼び出す方法は?」
どうもありがとうございます :)