有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在其他活动中使用字符串数组

我有两项活动。每一个扩展活动。我尝试了我在这里找到的所有方法,但没有一种有效。 我需要将字符串数组从一个活动发送到另一个活动,但要留在第一个活动中。 我试试这个:

Intent intent = new Intent(ActivityFrom.this, ActivityTo.class);
                                                intent.putExtra("string-array", ARRAY);
                                                ActivityFrom.this.startActivity(intent); 

并接受:

 Intent intent = getIntent();
        String[] array = intent.getExtras().getStringArray("string-array");

有什么想法吗


共 (4) 个答案

  1. # 1 楼答案

    可以使用public Intent putExtra (String name, Bundle value),其中Bundle对象包含使用putStringArray(String key, String[] value)String[]数组

  2. # 2 楼答案

    我建议使用单例类,如果您希望以后使用它,这也将使您的字符串数组在整个应用程序中可用。这样的事情应该让你开始:

    public class StringArrayHolder {
        private static StringArrayHolder instance;
        private String[] mArray;
    
        public static StringArrayHolder getInstance() {
            if (instance == null) {
                instance = new StringArrayHolder();
            }
            return instance;
        }
    
        private StringArrayHolder() {
    
        }
    
        public void setStringArray(String[] value) {
            mArray = value;
        }
    
        public String[] getStringArray() {
            return mArray;
        }
    
    }
    

    也可以使用putStringArrayListExtra()方法

    希望这有帮助

  3. # 3 楼答案

    Bundle b=new Bundle();
    b.putStringArray("key", strarray);
    Intent intent=new Intent(this, nextActivity.class);
    intent.putExtras(b);
    startActivity(intent);
    
  4. # 4 楼答案

    这应该对你有用

    ActivityFrom.java:
    ...
        // Start ActivityTo
        Intent intent = new Intent(this, ActivityTo.class);
        intent.getExtras().putStringArray("string-array", ARRAY);
        startActivity(intent); 
    ...
    
    ActivityTo.java:
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String[] strings = getIntent().getStringArrayExtra("string-array");
        ...
    }