假设我有一个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");
答案 0 :(得分:2)
如果希望变量在整个应用程序中使用,则使用静态变量或单例类(即将getter setter模型类设为singleton)。
静态变量不容易被垃圾收集,所以除非你需要,否则不要使用它。
如果要将数据从一个活动发送到其他活动(而不是通过应用程序),请使用捆绑包。
答案 1 :(得分:2)
除了使用Intent
变量之外,最好使用static
。如果您不想在应用程序中长时间使用静态变量,请使用静态变量。因为它占用内存并且不容易收集垃圾。
因此,使用“Intent”将变量传递给其他Activity总是更好。
答案 2 :(得分:1)
使用此代码..可能对您有帮助..
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")