2012-04-09 14 views
1

レイアウトファイル - main.xml(線形レイアウト)には、2つのボタン(たとえばb1とb2)、1つのリストビューと1つの相対レイアウトがあります。 b1をクリックすると、リストビューはVISIBLEとなり、相対レイアウトはGONEとなります。 b2をクリックすると、リストビューはGONEとなり、相対レイアウトはVISIBLEとなります。ここで
アンドロイドのレイアウトを切り替える

b1.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) 
      { 
       try{ListView listView = (ListView) Home.this.findViewById(R.id.mylist); 
       listView.setTextFilterEnabled(true); 

       String[] values = new String[] { "Android", "iPhone", "WindowsMobile", 
        "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
        "Linux", "OS/2" ,"asdsad","asdsdsa","asdasdsa"}; 
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, 
         R.layout.list_item,values); 

        // Assign adapter to ListView 
       RelativeLayout rl=(RelativeLayout) findViewById(R.id.rl1); 
       rl.setVisibility(8); 
        listView.setAdapter(adapter); 
        listView.setVisibility(0);} 
       catch(Exception e){Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();} 
      } 

     });<br> 
b2.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) 
      { 
      try 
      { 

      ListView ls=(ListView) findViewById(R.id.mylist); 
      ls.setVisibility(8); 
      RelativeLayout rl=(RelativeLayout) findViewById(R.id.rl1); 
      getLayoutInflater().inflate(R.layout.creategroup,rl,true); 
      rl.setVisibility(0); 


      EditText username=(EditText) findViewById(R.id.group_owner_fill); 
      username.setText(userid); 
      username.setEnabled(false); 
      username.setFocusable(false); 
      boolean t=username.isEnabled(); 
      String s=new Boolean(t).toString(); 
      Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show(); 



      } 
      catch(Exception e) 
      { 
       Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); 
      } 
      } 

     }); 



私はB2をクリックして初めて
は、EDITTEXT(ユーザー名)がロックされ、コードである(すなわちsetenabledとsetfocussableが偽作られています)。しかし、b1をクリックしてからb2をクリックすると、Edittextはロックされず、setTextもそこにはありません。これにはどのような理由がありますか?

答えて

3

可視性を設定する代わりに、ViewFlipperを実装することをお勧めします。なぜなら、ViewFlipperはユーザーがいつでもビューを反転できるからです。

<ViewFlipper 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/flip"> 

    <ListView /> 
     <RelativeLayout> 
     ............. 
     ............. 
     .............   
     </RelativeLayout> 

</ViewFlipper> 

コードでは、setDisplayedChild()メソッドを使用してビューを反転できます。 FYI、RelativeLayoutは1.あなたが今flipper.setDisplayedChild(1)

+0

を書き留めする必要が子供がいる、それは理にかなって... :-) – user370305

+0

@ user370305はい私は知っている、実際に私は日食コードエディタ内のレイアウトのコード例を作成していた:) –

+0

@PareshMayani:Surajは、彼が得ているアウトプットの理由を尋ねました。 – Ashwin

関連する問題