通过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总是更好。 只要您不希望在应用程序中长时间使用静态变量,请使用静态变量。 因为它占用内存并且不容易被垃圾收集。 因此,使用“Intent”将变量传递给其他Activity总是更好。

如果希望变量在整个应用程序中使用,则使用静态变量或单例类(即将getter setter模型类设置为singleton)。
静态变量不容易被垃圾收集,因此除非您需要,否则不要使用它。
如果要将数据从一个活动发送到其他活动(而不是通过应用程序),请使用捆绑包。

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

  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")