当我的应用程序运行时,TextViews,Buttons和TableRows通过用户输入以编程方式添加。如何保存已添加的视图,以便在用户重新打开应用程序时它们会在那里?
添加按钮的示例:
public void submitPublicQuestion(View view) {
AlertDialog.Builder question = new AlertDialog.Builder(this);
question.setTitle("Submit Question");
question.setMessage("Enter question: ");
// Set an EditText view to get user input
final EditText input = new EditText(this);
final View queue = this.findViewById(R.layout.activity_main_class);
final Button newBtn = new Button(this);
newBtn.setId((int) (Math.random() * 0xFFFFFFFF));
question.setView(input);
question.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
newBtn.setText(value);
newBtn.setMinWidth(550);
newBtn.setTextSize(24);
newBtn.setVisibility(View.VISIBLE);
LinearLayout ll = (LinearLayout)findViewById(R.id.CSQuestionsLayout);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
newBtn.setLayoutParams(lp);
ll.addView(newBtn);
}
});
question.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
question.show();
}
答案 0 :(得分:1)
您无法长时间保存实际 View
个对象,因为它们不是Serializable或Parcelable有意义的方式。
我要做的是保存指示以重新创建视图。每次基于用户输入创建视图时,记录创建的视图类型以及与其关联的任何参数(文本,颜色,位置等)。打开应用程序时,根据路线列表检查应用程序的当前状态,并根据需要重新创建视图。