簡體   English   中英

如何從以前的活動中將字符串添加到arraylist中

[英]How to add strings into an arraylist from a previous Activity

如標題所示,我需要將一些字符串從當前活動(C)傳遞到在第一個活動(P)中創建的靜態ArrayList。 如果在進入第一個活動(P)之前旋轉屏幕(C),則先前活動(C)的所有字符串都將丟失,但是主活動ArrayList(P)仍然存在。 如果我在沒有任何狀態更改(旋轉)的情況下進行第一個Activity,則所有這些都將保存到靜態ArrayList中。 怎么了,為什么除了第一個(P)之外的所有數組列表(C)都丟失了?

這是在我的onCreate()方法中。

Bundle b = new Bundle();
    b = getIntent().getExtras();    

    if (b != null) {

         myList = b.getStringArrayList("list");
         currentFile = b.getString("current");
         previousFile = b.getString("previousFile");         
    }

我的代碼創建一個新的Activity:

Bundle b = new Bundle();

        b.putString("current", currentFile);
        b.putString("previousFile", getPreviousFile())                                                     
        b.putStringArrayList("list", myList);       
        Intent i = new Intent(MainActivity.this, str);
        i.putExtras(b);

        startActivity(i);

每當旋轉屏幕時,活動都會被破壞並重新創建。 與調用this.recreate()相同。

為了避免這種情況,請在清單中的活動下進行定義:

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

例如:

 <activity
        android:name="com.app.example.MainActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:label="@string/app_name" >

您只真正需要屏幕的方向和屏幕尺寸,但是使用其他屏幕是個好習慣。

在清單中定義->示例:

        android:name="pt.iscte.hff.activities.MainActivity"
        android:label="@string/title_activity_main"
        android:screenOrientation="portrait" >

或定義此MyProject /
分辨率/
布局/
main.xml
布局土地/
main.xml

http://developer.android.com/training/basics/supporting-devices/screens.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM