这是我在ShoppingListName.java中的setter和getter
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());
但很明显我收到了空回报。
答案 0 :(得分:1)
我正在尝试将字符串传递给另一个java文件 (CreateList.java)我该怎么做?
据推测,您的意思是,您希望将String
传递给课程CreateList
中定义的方法。
所以只需在CreateList
上创建一个方法String
,然后做任何需要做的事情。
public class CreateList {
public static void doSomething(String listName) {
//do whatever you want with it
}
}
作为旁注,您的类ShoppingListName似乎不会为任何有意义的真实世界对象建模。考虑将其更改为:
public class ShoppingList {
List<ShoppingItems> items;
String listName;
..
..
}
CreateList
也是如此。这个对象的主要责任是什么?
答案 1 :(得分:1)
ShoppingListName
中的 MainMenu.java
类实例与CreateList.java
中的实例不同。显然,CreateList.java
中的新实例无法获取您在MainMenu.java
中的实例中设置的值。您必须以某种方式将实例从MainMenu.java
传递给CreateList.java
,或者在两个类之间共享相同的实例。
答案 2 :(得分:1)
* 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(“你需要设置的值”);
获取值 字符串值= 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();
答案 3 :(得分:0)
您可以制作getter和setter方法静态,然后您使用的最后一个调用将起作用。然后,提供流是这样的,get方法在 set方法之后被称为,你不必显式地传递任何东西。
因此,有效地,您将在任意多个其他类中共享单个实例。
答案 4 :(得分:0)
试试这段代码:
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