如何在不同的java文件中使用setter和getter

时间:2014-01-09 03:29:12

标签: java android

这是我在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());

但很明显我收到了空回报。

5 个答案:

答案 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