[英]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.