【问题标题】:Passing data between activities in Android在 Android 中的活动之间传递数据
【发布时间】:2015-04-10 02:26:18
【问题描述】:

如何在 Android 应用程序的 Activity 之间传递数据?

【问题讨论】:

    标签: android


    【解决方案1】:

    在您当前的活动中,创建一个意图

    Intent i = new Intent(getApplicationContext(), ActivityB.class);
    i.putExtra(key, value);
    startActivity(i);
    

    然后在另一个活动中,检索这些值。

    Bundle extras = getIntent().getExtras(); 
    if(extras !=null) {
        String value = extras.getString(key);
    }
    

    【讨论】:

    • 大家都是这样的吗?
    • 我目前没有足够的代表来投票反对,但值得注意的是,虽然这在某些情况下会起作用,但它不是唯一的方法,而且并不总是最好、最简单的方法,最快或最有效。 Emre 的答案(幸运地被选为正确答案,尽管在投票中存在巨大差异)链接到多种方法,您可以从中选择最适合您的应用的解决方案。
    • 这并非一直有效,因为当您有大量数据时,您无法将它们作为附加信息附加到意图中。 groups.google.com/forum/?fromgroups#!topic/android-developers/…
    【解决方案2】:

    使用全局类:

    public class GlobalClass extends Application
    {
        private float vitamin_a;
    
    
        public float getVitaminA() {
            return vitamin_a;
        }
    
        public void setVitaminA(float vitamin_a) {
            this.vitamin_a = vitamin_a;
        }
    }
    

    您可以从所有其他类中调用该类的 setter 和 getter。 这样做,你需要在每个 Activity 中创建一个 GlobalClass-Object:

    GlobalClass gc = (GlobalClass) getApplication();
    

    然后你可以调用例如:

    gc.getVitaminA()
    

    【讨论】:

      【解决方案3】:

      把它放在你的次要活动中

      SharedPreferences preferences =getApplicationContext().getSharedPreferences("name", MainActivity.MODE_PRIVATE);
      
      android.content.SharedPreferences.Editor editor = preferences.edit();
      
      editor.putString("name", "Wally");
                  editor.commit();
      

      把它放在你的 MainActivity 中

      SharedPreferences preferences = getApplicationContext().getSharedPreferences("name", MainActivity.MODE_PRIVATE);
      
      if(preferences.contains("name")){
      
      Toast.makeText(getApplicationContext(), preferences.getString("name", "null"), Toast.LENGTH_LONG).show();
      
      }  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多