2016-04-17 18 views
0

我有一個活動課與方法doLogin()這樣的:獲得使用界面從一個活動值的Android

public class LoginActivity extends AppCompatActivity { 
    public void doLogin(final String email, String url) { 
    asyncThread = new Thread() { 
     @Override 
     public void run() { 
      String username = email; 
      //....... 
    } 
} 

我將使用的接口與我的自定義SDK,那麼其他應用程序。可以使用interface/callback將值「email」和「url」發送到LoginActivity.doLogin(),請給我一個例子。

謝謝。

回答

1

方法有很多種:事件總線,通過全局對象(應用程序類),通過留存片段,..

但是標準的方法是使用意圖。

在LoginActivity:在OtherActivity

String mymail = "email"; 
String myurl = "some/url"; 
Intent intent = new Intent(LoginActivity.this, OtherActivity.class); 
intent.putExtra(OtherActivity.MAIL_KEY, mymail); 
intent.putExtra(OtherActivity.URL_KEY, myurl); 
startActivity(intent); 

提取數據:

... 
public static final String MAIL_KEY = "my.app.package.mail_key"; 
public static final String URL_KEY = "my.app.package.url_key"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String mymail = getIntent().getExtras().getString(MAIL_KEY); 
    String myurl = getIntent().getExtras().getString(URL_KEY); 
+0

你想給我一個例子使用意圖請嗎? – wdyz

0

你不會通過2個活動之間的接口來做到這一點。您將它們作爲用於啓動活動的意圖的參數發送。或者如果其他活動開始了,你會在結果意圖中將它們作爲額外物品歸還。您從不使用界面在活動之間進行交談。

+0

我會用我的定義SDK這個接口,所以其他應用程序。可以使用我的doLogin()方法,只需回調電子郵件參數 – wdyz

+1

無關緊要。如果不做醜惡的黑客,你就無法獲得另一種行爲的參考。與其他活動交流的唯一正確方式是通過意向。現在,您可以創建工廠方法,以便輕鬆創建意圖,並根據需要隱藏詳細信息。 –

+0

有沒有使用意圖的其他方式?我想從其他類(活動/片段/等)傳遞參數到我的課(活動/片段/等) – wdyz

相關問題