2011-07-29 209 views
0

我在做什麼錯在下面。也是繼是我的問題Android佈局問題

1.In一個main.xml中的文件纔能有兩個線性佈局或故事佈局

2.Below上的Button1點擊我設置linearlayout1的知名度,「隱身」,但它不發生。

super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 



Button g_gal =(Button)findViewById(R.id.button1); 
final LinearLayout tr1 =(LinearLayout)findViewById(R.id.linearLayout1); 
final LinearLayout tr2 =(LinearLayout)findViewById(R.id.linearLayout2); 
tr2.setVisibility(View.INVISIBLE); 

final Button g_gal =(Button)findViewById(R.id.button1); 
g_gal.setOnClickListener(new OnClickListener() { 

    public void onClick(View arg0) { 


     try { 
        tr2.setVisibility(View.VISIBLE); 
        tr1.setVisibility(View.INVISIBLE); 


     } 
     catch (Exception e) 
     { 
      Toast.makeText(getApplicationContext(),"Exception while displaying gallery: "+ e, Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
    <Button android:text="Browse Gallery" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 

    </LinearLayout> 
    <LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <requestFocus></requestFocus> 
     </EditText> 
     <Button android:text="Send SMS to Nav" android:id="@+id/sms" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
     <Button android:text="Back" android:id="@+id/back1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 


    </LinearLayout> 

回答

2

有效的XML文件只能有一個根,所以你不能有兩個線性佈局的根元素。創建另一個包含這兩個佈局的佈局作爲子項。

0

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/linearLayout0" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
    <LinearLayout android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
    <Button android:text="Browse Gallery" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 

    </LinearLayout> 
    <LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <requestFocus></requestFocus> 
     </EditText> 
     <Button android:text="Send SMS to Nav" android:id="@+id/sms" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
     <Button android:text="Back" android:id="@+id/back1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
    </LinearLayout> 

0

1.增加您添加的LinearLayout和一個Button

2.To後剛剛完成的LinearLayout第一LinearLayout.Now下的所有其他佈局隱藏佈局tr1試圖隱藏孩子

int count=tr1.getChildCount(); 
     for(int i=0;i<count;i++) 
      tr1.getChildAt(i).setVisible(false); 
0

對於問題2取而代之的視圖設置爲不可見,可見性設置爲View.Gone

final LinearLayout tr1 =(LinearLayout)findViewById(R.id.linearLayout1); 
tr1.setVisibility(View.Gone) 

這是佈局的目的更好。有關更多詳細信息,請參閱Android View文檔。