我写了一个tabwidget,顶部有四个tab页,分别是tab1,tab2,tab3,tab4。分别都是用意图的形式启动的,tab1所对应的类名为Activity01 extends Activity。activity01自己的布局文件是个线性布局,线性布局里面又包含一个帧布局,
大概如下
<LinearLayout android:orientation="vertical">
  <FrameLayout>
    <ListView/>
    <ListView/>
    <LinearLayout android:orientation="horizontal">
      <EditText/>
      <ImageButton/>
    </LinearLayout>
  </FrameLayout>
</LinearLayout>
问题是现在我默认进去的是tab1,进了tab1之后输入几个字符,这个时候只要点其他的tab再回来(或者就点一下tab1),edittext这个控件上的字符全部不显示了。只要点一个edittext区域,字符又显示出来了。各位帮帮忙指点一下,到底是为什么?谢谢大家了。
补充,如果在Activity01的布局中把帧布局里面的第三个线性布局移到第一个则可以正常显示。即如下:
  <FrameLayout>
     <LinearLayout android:orientation="horizontal">
      <EditText/>
      <ImageButton/>
    </LinearLayout>
    <ListView/>
    <ListView/>
  </FrameLayout>

解决方案 »

  1.   

    <?xml version="1.0" encoding="utf-8" ?> 
    - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/top" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#00011111">
    - <FrameLayout android:id="@+id/matchlist_dialpad" android:layout_width="match_parent" android:layout_height="wrap_content">
      <ListView android:id="@+id/match_search_list" android:layout_width="465px" android:layout_height="642px" android:layout_gravity="center_horizontal" /> 
      <ListView android:id="@+id/no_match" android:layout_width="465px" android:layout_height="642px" android:layout_gravity="center_horizontal" android:visibility="gone" /> 
    - <LinearLayout android:id="@+id/digits_deletebutton" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="252px" android:orientation="horizontal">
      <EditText android:id="@+id/digits" android:layout_width="402px" android:layout_height="86px" android:gravity="center" android:paddingLeft="8dip" android:paddingRight="8dip" android:maxLines="1" android:scrollHorizontally="true" android:textSize="46px" android:background="@drawable/btn_dial_textfield" android:textColor="@color/dialer_button_text" android:focusableInTouchMode="true" android:editable="true" android:cursorVisible="false" android:layout_weight="0" android:maxLength="128" /> 
      <ImageButton android:id="@+id/deleteButton" android:layout_width="78px" android:layout_height="86px" android:layout_gravity="center_vertical" android:state_enabled="false" android:background="@drawable/btn_dial_textfield_delete" android:src="@drawable/ic_dial_action_delete" /> 
      </LinearLayout>
      </FrameLayout>
      <include layout="@layout/bottom_dialpad_buttonsline" /> 
      <ListView android:id="@+id/dialpadChooser" android:layout_width="match_parent" android:layout_height="1dip" android:layout_weight="1" /> 
      </LinearLayout>
      

  2.   

    楼上是布局,java文件太长,发不出来。顶一下。谁知道怎么回事吗?
      

  3.   

    package cn.zhangxuan.tabtest;import android.app.Activity;
    import android.app.TabActivity;
    import android.content.Intent;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.TabHost;
    import android.widget.TabHost.OnTabChangeListener;
    import android.widget.TabWidget;public class Activity01 extends TabActivity {
        /** Called when the activity is first created. */
    TabHost mTabHost;
    TabWidget mTabWidget;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            mTabHost=getTabHost();
            final Intent intent = getIntent();
            String componentName = intent.getComponent().getClassName();
         Log.i("zhangxuan","componentName="+componentName+"/"+getClass().getName());
            mTabHost.addTab(mTabHost.newTabSpec("1").setIndicator("tab1").setContent(R.id.text1));
            mTabHost.addTab(mTabHost.newTabSpec("2").setIndicator("tab2").setContent(R.id.text2));
            mTabHost.addTab(mTabHost.newTabSpec("3").setIndicator("tab3").setContent(R.id.text3));
            
            Intent intent2 = new Intent();
            intent2.setClass(this, Main2.class);        mTabHost.addTab(mTabHost.newTabSpec("group")
                    .setIndicator("tab4")
                    .setContent(intent2));
           //mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));
           //mTabHost.setBackgroundResource(R.drawable.dial_top_normal);
           mTabWidget=getTabWidget();
           for(int i=0;i<mTabWidget.getChildCount();i++){
            mTabWidget.getChildAt(i).getLayoutParams().height=150;
            mTabWidget.getChildAt(i).setBackgroundResource(R.drawable.dial_top_normal_a);
            mTabWidget.setStripEnabled(false); 
           }
         //  EditText m;
          
            mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

    @Override
    public void onTabChanged(String tabId) {
    // TODO Auto-generated method stub

    }
    });
        }
    }
      

  4.   

    package cn.zhangxuan.tabtest;
    import android.app.Activity;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.provider.CallLog.Calls;
    import android.provider.ContactsContract.PhoneLookup;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnKeyListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.SimpleCursorAdapter;public class Main2 extends Activity implements View.OnClickListener{ public static final String TAG="Main2";
    private ListView ls;
    private Button imageButton;
    private EditText mDigits;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
     setContentView(R.layout.main2);
         ls=(ListView)findViewById(R.id.no_match);
         Cursor cur=getContentResolver().query(Calls.CONTENT_URI,null,
         null, null, Calls.DEFAULT_SORT_ORDER);
        startManagingCursor(cur);
        ListAdapter adapter=new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cur, new String[] {Calls._ID,Calls.NUMBER}, new int[]{android.R.id.text1,android.R.id.text2});
        ls.setAdapter(adapter);
        mDigits=(EditText)findViewById(R.id.digits);
    //mDigits.setTextSize(0, 20);

        imageButton = (Button) findViewById(R.id.deleteButton);
    imageButton.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub

    }
    }
      

  5.   

      <?xml version="1.0" encoding="utf-8" ?> 
    - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="match_parent" android:orientation="vertical">
    - <FrameLayout android:id="@+id/matchlist_dialpad" android:layout_width="match_parent" android:layout_height="wrap_content">
      <ListView android:id="@+id/no_match" android:layout_width="fill_parent" android:layout_height="300px" android:layout_gravity="center_horizontal" /> 
    - <LinearLayout android:id="@+id/digits_deletebutton" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingTop="50px">
      <EditText android:id="@+id/digits" android:layout_width="100px" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="8dip" android:paddingRight="8dip" android:maxLines="1" android:scrollHorizontally="true" android:inputType="phone" android:background="@drawable/btn_dial_textfield" android:focusableInTouchMode="true" android:editable="true" android:layout_weight="0" android:maxLength="128" /> 
      <Button android:id="@+id/deleteButton" android:layout_width="78px" android:layout_height="86px" android:layout_gravity="center_vertical" /> 
      </LinearLayout>
      </FrameLayout>
      </LinearLayout>
      

  6.   

    一个最简单的方法,用edittext输入数据,然后使用textview显示输入的数据就可以了,毕竟edittext提供的是输入功能,不是显示功能、