2016-12-17 47 views
0

在我的應用程序中,當用戶按下添加按鈕圖標時,會創建一個新按鈕並彈出一個對話框,以便用戶可以命名該按鈕。但是,當用戶關閉程序並重新打開它時,佈局顯然會重置。我怎樣才能保存用戶創建的按鈕,即使他們殺了應用程序?提前致謝。在Android應用程序中保存用戶創建的元素

+1

持久性存儲。 https://developer.android.com/guide/topics/data/data-storage.html –

+0

但是,不要存儲「按鈕」,只是輸入的數據,並在讀取數據時重新創建按鈕退出 –

+0

使用共享首選項來存儲用戶的數據https://developer.android.com/guide/topics/data/data-storage.html#pref – Basi

回答

0

您可以使用sharedpreferences

public class MainActivity extends AppCompatActivity { 
       Button b1; 

       public static final String MyPREFERENCES = "MyPrefs" ; 
       public static final String Name = "nameKey"; 

       SharedPreferences sharedpreferences; 

       @Override 
       protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 

        checkIfButtonNameAlreadyPresent(); 

        b1=(Button)findViewById(R.id.button); 
        sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

        b1.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 

         SharedPreferences.Editor editor = sharedpreferences.edit(); 

         editor.putString(Name, /* name from the pop up */); 
         editor.commit(); 
         Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show(); 
        } 
        }); 
       } 

     public void checkIfButtonNameAlreadyPresent(){ 
      sharedpreferences = getSharedPreferences(MyPREFERENCES,    Context.MODE_PRIVATE); 
      String name = sharedpreferences.getString(Name, ""); 
      if (name.equals("")){ 
      b1.setText("Button"); 
      } else { 
      //this should be executed if any name you added ever 
      b1.setText(name) 
      } 
     } 
}