0

私は2つの活動をしています。私は1つを開始し、ある時点で別のものを開始します:

 Intent enabler = new Intent(this, cprompt.class);
        startActivity(enabler);

古いメソッドからメソッドを呼び出したいのですが、データも渡したいです。

これが私が試した方法です:

Activity1.sendcommand(DATA);

そして、私はこれを得ました:

Cannot make a static reference to the non-static method sendcommand(String) from the type Activity1

そして、メソッドを静的に変更したくありません。リスナーを作成する唯一の方法は? 必要であれば、どのように説明してもらえますか?

Javaは私にとって新しいものです... :/しかし、この問題が解決されれば、プログラムは完了したと思います:)

4

3 に答える 3

2

一度にアクティブになるアクティビティは 1 つだけです。データを渡したいという理由だけでメソッドをトリガーしようとしていますか?.Intent

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("YOUR_DATA_KEY", "Data Value");
startActivity(intent); 

ではSecondActivity、データを取得して処理できます。

String data = getIntent().getStringExtra("YOUR_DATA_KEY");

Serializableこのように送れるのはストリングスだけではありませんParcelable。詳細については、Android Developer Website の Intents を参照してください。

于 2013-02-02T19:49:03.343 に答える
0

を宣言して、そのインターフェイスinterfaceActivity1 実装
することができます。 その後、Activity1 のメソッドを呼び出す必要がある場合は、inetrface のメソッドを呼び出します...

あなたのインターフェース:

public interface OnSendCommand{
    public void onSendCommand(values);
}

アクティビティ 1:

public Activity1 implements OnSendCommand {
    public void onSendCommand(values){}
}
于 2013-02-02T19:44:04.813 に答える
0

このメソッドを実行すると、2 番目のアクティビティから最初のアクティビティに戻りますか? その場合は、このチュートリアルに従って startActivityForResult() を使用できます。そうでない場合、このメソッドを静的にできない場合、アプリケーションの構造に何か問題があり、このメソッドはアクティビティから継承しない別のクラスにある必要があります。

于 2013-02-03T06:02:31.227 に答える