簡體   English   中英

如何將數據從活動傳遞到班級?

[英]How to pass data from activity to a class?

如何從活動向班級發送數據?

我試圖使用getter傳遞一個String,但這給了我變量的初始值,但是我的String的值在onCreate中發生了變化。 有什么想法可以將其傳遞給我的班級嗎?

這是一些代碼:

public class MainActivity extends AppCompatActivity {
 private String global ; 
    public String getGlobal() {
    return global;
}
 ...
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    ...
   listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            global = String.valueOf(parent.getItemAtPosition(position));

        }
    });
}

這是我的課

public class SimpleVar {
MainActivity mainActivity = new MainActivity() ;
String data = mainActivity.getGlobal; }

任何幫助都感激不盡。 先感謝您 !

global實際上不是“全局”

Activity的每個實例都有其自己的字符串,並且操作系統可以決定隨時終止您的Activity並重新創建它,因此,不要依賴另一個類中Activity的變量。

其次,永遠不要進行new活動。 這不再與您最終將單擊按鈕的活動相關聯。

很難確定您真正需要什么,但這更正確。

public class SimpleVar {
    String data; 
}

活動向其發送數據

private SimpleVar var;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    ...
    var = new SimpleVar();
   listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            var.data = String.valueOf(parent.getItemAtPosition(position));

       }
    });
}

如果您在其他地方需要該對象,則需要將該對象傳遞給該Activity中的那些類

嘗試為您的班級構造函數

public class  SimpleVar {
private String data;

public SimpleVar(String data) {
    this.data = data;
}

public void setData(String data) {
    this.data = data;
}

}

然后在您的活動中新建班級,然后為其設置數據

您不應在課程中創建新的mainactivity。 在實例化類時,將對它的引用傳遞給創建類的Activity。 對活動的引用應保持弱引用。 然后,您可以在Activity中創建一個getter並從您的班級中調用它。

或者,您可以執行相反的操作-在Activity中保留對實例化對象的引用。 使用活動中的設置器將新值傳遞給對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM