Мне нужно добавить кнопку, нажав на другую кнопку (Добавить новую). Мой код для кнопки добавить новую кнопкуКак добавить новые кнопки, нажав другую кнопку
addnew = (Button)findViewById(R.id.btnaddnew);
addnew.setOnClickListener(this);
public void onClick(View v) {
if(v == addnew)
{
Button myButton = new Button(this);
myButton.setText("New Button");
myButton.setId(some_random_id);
LinearLayout ll = (LinearLayout)findViewById(R.id.layout1);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(myButton, lp);
}
}
выше код работает отлично, чтобы добавить кнопки макета, но после закрытия приложения, когда я вновь открыть его снова новую кнопку, которые были добавлены ранее не там. Может кто-нибудь помочь
После реализации sharedprefrences код для OnCreate
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lvInb = (ListView) findViewById(R.id.lvInb);
addnew = (Button)findViewById(R.id.btnaddnew);
addnew.setOnClickListener(this);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
код OnClick
public void onClick(View v) {
if(v == addnew)
{
count = prefs.getInt("count", 0);
for(int i=0;i<count;i++){
Button myButton = new Button(this);
myButton.setText("New Button");
LinearLayout ll = (LinearLayout)findViewById(R.id.layout1);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(myButton, lp);
count++;
Editor editor = prefs.edit();
editor.putInt("count", count);
editor.commit();
} }
Вы должны прочитать об основах, потому что ваш вопрос о состоянии жизненного цикла приложения и деятельности. Вы не должны начинать кодирование без знания. – TommyNecessary
проверить эту ссылку http://stackoverflow.com/questions/18757381/saving-dynamically-added-linearlayouts-without-using-savedinstancestate – Ranjit