Edittext和Tab问题

时间:2010-08-25 06:56:12

标签: android

在我的应用程序中,我正在创建动态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,并创建新选项卡并切换到默认选项卡,则默认内容将丢失。

2 个答案:

答案 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的情况下检索此内容!