0

私のプロジェクトには2つのクラスがあり、最初にアクティビティを拡張し、他のクラスを拡張します。アクティビティではなく他のクラスからメインアクティビティのメソッドを呼び出す方法を教えてください。ここに私のコード:

  1. アクティビティ クラスの拡張

    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);
    }
    
  2. 活動クラスを延長しない

    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)

ご回答ありがとうございます。私の問題と同様の質問が見つからないのに、この質問が繰り返された場合は申し訳ありません。他の問題は、メインアクティビティから他のクラスのメソッドを呼び出す方法を教えてくれるだけですが、この質問は反対です。「他のクラスからメインアクティビティのメソッドを呼び出す方法は?」

どうもありがとうございます :)

4

3 に答える 3

0

これを「CallActivity」に記述して「WantedActivity」を呼び出します

public class CallActivity extends Activity {
    //The Activity we wnt to call
    private WantedActivity stringname;

stringname は WantedActivity を処理するために使用されます。削除することもできますprivate

于 2013-07-05T00:13:06.503 に答える