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(username)がロックされます(つまり、setenabledとsetfocussableがfalseになります)。しかし、b1をクリックしてからb2をクリックすると、Edittextはロックされず、setTextもそこにありません。これの考えられる理由は何でしょうか?

4

1 に答える 1

3

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

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

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

</ViewFlipper>

コードでは、setDisplayedChild()メソッドを使用してビューを反転できます。参考までに、RelativeLayoutは子1です。したがって、書き留める必要がありますflipper.setDisplayedChild(1)

于 2012-04-09T10:39:33.450 に答える