在我的应用程序中,我正在创建动态tabs.Inside framelayout我创建了一个edittext.For 每个选项卡我创建选项卡的内容将是edittext。当我输入一个标签的editext时,如果我创建一个新标签,当我在这些标签之间切换时,它会将editext的内容显示为空。
我不想为每个标签创建单独的活动。我将与代码一起解释。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TabHost tabs = (TabHost)this.findViewById(R.id.tabs);
tabs.setup();
TabHost.TabSpec spec1=tabs.newTabSpec(f);
spec1.setContent(R.id.content1);
spec1.setIndicator(f);
tabs.addTab(spec1);
tabs.setCurrentTab(i);
list.add(spec1);
i++;
Addbtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
final TabHost tabs = (TabHost)this.findViewById(R.id.tabs);
tabs.setup();
TabHost.TabSpec spec1=tabs.newTabSpec(f);
spec1.setContent(R.id.content1);
spec1.setIndicator(f);
tabs.addTab(spec1);
tabs.setCurrentTab(i);
list.add(spec1);
i++;
});
默认的一个标签就在那里。这里tab的内容是edittext。当我点击按钮时,将创建新选项卡。问题在于标签的内容。在默认选项卡中,如果我键入edittext,并创建新选项卡并切换到默认选项卡,则默认内容将丢失。
答案 0 :(得分:0)
您需要以某种方式存储EditText的值。一种好方法是通过活动显示标签内容并使用this method to商店实例状态。
答案 1 :(得分:0)
您可以使用EditorActionListener,当有人按下'Enter'或IME_ACTION键来存储EditText的值时,会调用它。
而不是执行 spec1.setContent(R.id.content1); ,动态创建一个EditText(新的EditText(上下文))并将一个数字(Tab Number)作为标记,你可以检索并存储在列表中。
mEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
int position = (int) v.getTag();
String s = ((EditText) v).getText()
// store in an object
return false;
}
});
不确定如何在不启动subActivities的情况下检索此内容!