0

I Have 1 activity and 1 ordinary class, which activity one to receive message and ordinary class to send message. How to implement it:

In ActivityOne.class

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    public mHandler = new Handler() {
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 10:
                   Toast("Get message 10");
                   break;
                case 1:
                   Toast("Get message 1");
                   break;
            }
        }
    };
}

public void Toast(String text) {
    Toast.makeText(ActivityOne.this, text, Toast.LENGTH_SHORT).show();
}

And in Ordinary.class

How code to sendEmptyMessage(1) ?

4

1 に答える 1

1

あなたはそれを使用することができます

編集:

public class TestApplication extends Application{

private Handler handler = null;  

    public void setHandler(Handler handler) { this.handler = handler; }  
    public Handler getHandler() { return handler; }  
} 

その後、ActivityOneで

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 10:
                   Toast("Get message 10");
                   break;
                case 1:
                   Toast("Get message 1");
                   break;
            }
        }
    };
    TestApplication mAPP = (TestApplication) getApplication(); 
    mAPP.setHandler(mHandler);  
}

アクティビティ 2

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity_two);
    TestApplication mAPP = (TestApplication) getApplication(); 
    mAPP.getHandler().sendEmptyMessage(1);

}

AndroidManifest.xml add android:name=".TestApplication"を修正する必要があります

<application
    android:allowBackup="true"
    android:name=".TestApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

EDIT2:

上記のコードを通常のクラスまたは次のようなもので使用することもできます。

public class ordinary{
    private Handler handler = null;  

    public ordinary(Handler handler) { this.handler = handler; }  
    public void doSomeThing(){
        handler .sendEmptyMessage(1);
    }
}

アクティビティワン:

ordinary clazz = new ordinary(mHandler);
clazz.doSomeThing();

編集終了

于 2013-07-23T09:01:06.543 に答える