将一个 class 中的字符串更改为另一个 class 中的字符串。 Android

Change a string in one class from another class. Android

所以我正在尝试更改 class Favoutires 中的字符串(称为 "string1")的值。

我正在使用以下代码。 有什么想法为什么它不起作用,也许什么会起作用?

String Athenry = "Athenry";

                Favourites favourites = new Favourites();
                favourites.string1 = Athenry;

以下是我的最爱Class

public class Favourites extends ActionBarActivity {

    String string1;
    String st2;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fav);
        final Button but1 = (Button) findViewById(R.id.button1);

一种方法是将字符串 string1 设为静态

public class Favourites extends ActionBarActivity {

 public static  String string1;
String st2;
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fav);
    final Button but1 = (Button) findViewById(R.id.button1);

Favourites.string1 = Athenry;

因为您确实为变量 string1 声明了访问修饰符。默认情况下它是私有的。你必须像这样 public:

public String string1;

但这是一种不好的做法。你会想要 getter 和 setter 来完成这些工作。所以基本上是这样的:

private String string1;
public String setString1(String s){
string1 = s;
}

然后你通过调用方法访问它

Object.setString("Your String");

你可以为那个字符串做一个setter

public class Favourites extends ActionBarActivity {
String string1;
public void setString1(String value){
      string1=value;
}

需要的时候再调用

String Athenry = "Athenry";

            Favourites favourites = new Favourites();
            favourites.setString1(Athenry);