[英]How to use setters and getters in different java file
這是我在ShoppingListName.java中的設置方法和獲取方法
public class ShoppingListName {
private String shoppingListName;
public String getShoppingListName() {
return shoppingListName;
}
public void setShoppingListName(String shoppingListName) {
this.shoppingListName = shoppingListName;
}
}
我在MainMenu.java中做到了
ShoppingListName shoppingList = new ShoppingListName();
shoppingList.setShoppingListName(inputListName.getText().toString());
我正在嘗試將字符串傳遞到另一個Java文件(CreateList.java),該怎么做?
我試過了
ShoppingListName shoppingList = new ShoppingListName();
Log.e("ShoppingListName", "" + shoppingList.getShoppingListName());
但很明顯,我收到的回報為空。
我正在嘗試將字符串傳遞到另一個Java文件(CreateList.java),該怎么做?
大概,您的意思是想將String
傳遞給類CreateList
定義的方法。
因此,只需在CreateList
上創建一個接受String
,然后執行所需的任何操作即可。
public class CreateList {
public static void doSomething(String listName) {
//do whatever you want with it
}
}
附帶一提,您的ShoppingShopName類似乎沒有為任何有意義的現實世界對象建模。 考慮將其更改為:
public class ShoppingList {
List<ShoppingItems> items;
String listName;
..
..
}
CreateList
。 此對象的主要責任是什么?
MainMenu.java
ShoppingListName
類實例與CreateList.java
的實例不同。 顯然, CreateList.java
的新實例無法獲取您在MainMenu.java
實例中設置的值。 您必須以某種方式將實例從MainMenu.java
傳遞到CreateList.java
或在兩個類之間共享同一實例。
* Getter Setter類
public class ShoppingListName {
private static String shoppingListName;
public static String getShoppingListName() {
return shoppingListName;
}
public static void setShoppingListName(String shoppingListName) {
ShoppingListName.shoppingListName = shoppingListName;
}
}
設置值 ShoppingListName.setShoppingListName(“您需要設置的值”);
獲取值 String value = ShoppingListName.getShoppingListName(); *
更新
正如@laalto在評論中提到的。 單獨的帶有靜態參數的pojo類來存儲數據以進行某些擴展不是完美的解決方案。
而不是根據我的說法,如果您想長時間保存數據,請將其保存在共享首選項中,否則在應用程序類中創建一個非靜態變量,並像這樣使用
public class HelloApplication extends Application {
private int globalVariable=1;
public int getGlobalVariable() {
return globalVariable;
}
public void setGlobalVariable(int globalVariable) {
this.globalVariable = globalVariable;
}
@Override
public void onCreate() {
//reinitialize variable
}
}
然后在您的活動中執行此操作
(HelloApplication)getApplication()).setGlobalVariable(10);
int valiable=((HelloApplication)getApplication()).getGlobalVariable();
您可以將getter和setter方法設為靜態 ,然后您使用的最后一個調用將起作用。 然后, 假設流程允許在 set方法之后調用get方法,則無需顯式傳遞任何內容。
因此, 有效地 ,您將根據需要在多個其他類之間共享單個實例。
試試這個代碼:
public class ShoppingListName extend Application{
private String shoppingListName;
public String getShoppingListName() {
return shoppingListName;
}
public void setShoppingListName(String shoppingListName) {
this.shoppingListName = shoppingListName;
}
}
在Android Manifest.xml中:
<application
android:name="yourPacket.ShoppingListName"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="yourPacket.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
在MainMenu.java中:
ShoppingListName shoppinglistname = (ShoppingListName) MainMenu.this.getApplicationContext();
// Now you can get and set shoppinglistname object
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.