我需要通过点击另一个按钮添加按钮(添加新按钮)。我的按钮代码添加了新按钮
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();
} }
答案 0 :(得分:1)
您需要将创建的按钮永久保存在某处。您使用的代码不会更改将在onCreate()
的{{1}}中加载的Layout xml。您可以使用Activity
保存自己创建的SharedPreferences
个,然后在Button
setContentView()
之后按代码添加它们
答案 1 :(得分:1)
您需要添加在sharedpreferences
中创建的按钮数量,然后在创建,循环中添加到该计数并创建这些按钮。
在onCreate中获取sharedpref:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
使全局变量计数:
int count=0;
当您添加新按钮时增加计数:
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);
count++;
Editor editor = prefs.edit();
editor.putInt("count", count);
editor.commit();
}
}
on onCreate:
count=prefs.getInt("count", 0);
for(int i=;i<count;i++){
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);
}
你也可以在另一个函数中添加按钮代码并调用它。
请勿在{{1}}中声明sharedpref, 在活动中写下这个:
onCreate
和onCreate:
SharedPreferences prefs=null;