3

GreenDroid を使用して Android アプリを開発しています。このアプリケーションは atm をテストするためだけのものであるため、含まれているのは、更新ボタン、3 つのタブ、およびそれらの各タブのアクティビティを備えた ActionBar だけです。

今のところ達成しようとしているのは、ActionBar で更新ボタンが押されたときにトースト メッセージを表示することだけですが、トースト メッセージをアクティビティの 1 つから呼び出す必要があります。これを Listener1Activity と呼びます。最初のタブにあるアクティビティ...これは、ActionBarボタンが押されたときにリロードしたいリストがListener1Activityに最終的に含まれるためです。今のところ単純なトーストメッセージで動作させることができれば、それを整理できます後で。

インテント、ブロードキャストを調べましたが、何も適合しないようです。

ボタンが押されるたびに新しいアクティビティを開始したくありません。その中のメソッドを呼び出してトーストを表示したいだけです

つまり、基本的には、同時に 2 つのアクティビティを実行し、一方のボタンを押して他方のメソッドを呼び出すようなものです。ではない?それとも私はそれを間違えましたか?

SenderActivity と Listener1Activity。

iOS では、SenderActivity から NSNotification を送信し、Listener1Activity にオブザーバーを追加します。Androidでこれを達成するための最良の方法は何ですか?

ありがとう!

スティーブン

4

4 に答える 4

5

他のアクティビティをインスタンス化したくない場合、それはこのメソッドの場所ではありません。複数のアクティビティ間で機能を共有している場合は、アクティビティから派生するアクティビティの基本クラスを作成してみませんか。

public class ActivityBase extends Activity
{
public void showToast()
{
...

次に、あなたの活動はこれから派生します

public class MyActivity extends ActivityBase
{
public void someMethod()
{
showToast();
于 2011-02-23T02:46:41.063 に答える
3

右。メソッドが静的である場合 (これが目標である場合はおそらくそうあるべきです)、次のように呼び出します。

YourClass.staticMethod(params);

そうでない場合は、オブジェクトを作成する必要があります。

YourClass yourClass = new YourClass(constructorParams);
yourClass.method(params);

それはそれを行う必要があります。

于 2011-02-23T02:47:49.553 に答える
0

あなたの質問についてはよくわかりませんが、うまくいくかもしれません。

((MainActivity) activity).textViewSetText();

public void textViewSetText (String value){

    tv.setText(value);    
}

ただし、アクティビティは MainActivity を拡張する必要があります。

于 2013-09-19T14:09:28.633 に答える