静态变量或通过bundle传递变量



假设我有一个ListView,我在列表中设置了一个OnItemClickListener。传递变量的最佳方法是什么?

静态变量:

public static String example;
// onItemClick
Intent intent = new Intent(Main.this, Details.class);
Main.example = "example";
startActivity(intent);
// in onCreate of Details
String example = Main.example;

捆:

// onItemClick
Intent intent = new Intent(Main.this, Details.class);
intent.putExtra("example","example");
startActivity(intent);
// in onCreate of Details
Bundle extras = getIntent().getExtras();
String example = extra.getString("example");
// or
Intent intent = getIntent();
String example = intent.getStringExtra("example");

除了使用static变量之外,最好使用Intent。只要您不想在应用程序中长时间使用它,请使用静态变量。因为它占用内存并且不容易被垃圾回收。因此,最好使用"意图"将变量传递给其他活动。

如果您希望在整个应用程序中使用该变量,请使用静态变量或单例类(即将getter setter模型类设置为单例)。
静态变量不容易被垃圾回收,所以除非你需要它,否则不要使用它。
如果要将数据从一个活动发送到另一个活动(而不是通过应用程序),请使用bundle。

使用此代码。它可能会帮助你..

 public  String example;
    // onItemClick
    Intent intent = new Intent(Main.this, Details.class);
    intent.putExtra("id",example);
    startActivity(intent);

    // on Details activtiy
    Intent intent =getIntent().getStringExtra("id")

最新更新