0

アクティビティに 2 つのレイアウトがあります。1 番目のレイアウトから ImageView の「表示」をクリックすると、2 番目のレイアウトが表示されますが、ここでは表示されず、コーディングの修正が行われましたが、この問題を解決できませんでした。

public class About extends Activity {
 LinearLayout line1, line2;
 ImageView show;
 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_about);
   line1=(LinearLayout) findViewById(R.id.ll1);
         line2=(LinearLayout)findViewById(R.id.ll2);

         show=(ImageView)findViewById(R.id.ss);

       show.setOnClickListener(new View.OnClickListener() {

       public void onClick(View v) {
           show.setVisibility(View.VISIBLE);
         // TODO Auto-generated method stub
       line1.setVisibility(View.VISIBLE);
       if (line2.getVisibility() == View.INVISIBLE || line2.getVisibility() == View.GONE) {
           line2.setVisibility(View.VISIBLE); } 
       else { 
           line2.setVisibility(View.INVISIBLE); 
       } 
         }
     });

XML レイアウト

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
       android:background="@color/black" >

<LinearLayout
    android:id="@+id/ll1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/black" 
   android:layout_alignParentTop="true"
    android:layout_alignParentRight="true">

      <ImageView
    android:id="@+id/ss"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:src="@drawable/menu"
    android:clickable="true" />
</LinearLayout>

<LinearLayout
    android:id="@+id/ll2"
    android:layout_width="199dp"
    android:layout_height="wrap_content"
    android:background="@color/black" 
    android:layout_toRightOf="@+id/ll1"
    android:visibility="gone"
    >


  <ImageView
    android:id="@+id/about"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_above="@+id/textView1"
    android:layout_toLeftOf="@+id/jobs"
    android:src="@drawable/about" />

    <ImageView
    android:id="@+id/jobs"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:src="@drawable/jobs" />

<ImageView
    android:id="@+id/log"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:src="@drawable/log" />

<ImageView
    android:id="@+id/home"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:src="@drawable/home" />

</LinearLayout>
 </RelativeLayout>
4

2 に答える 2

0

xmlの画像ビュー「ss」に対して、プロパティandroid:clickable="true"を設定します。

または、それ以外の場合は、xmlImageButtonの代わりにを使用しますImageView

編集 -

これを変える

show=(ImageView)findViewById(R.id.ss);

show=(ImageView)findViewById(R.id.show);

于 2013-03-22T11:22:29.577 に答える
0

の id を間違って定義したImageViewため、 の onClick イベントを取得できませんImageView

以下のように、id を before に変更しImageViewますR.id.showR.id.ss

これを変える

      show=(ImageView)findViewById(R.id.ss);

      show=(ImageView)findViewById(R.id.show);

編集:

onClick リスナーで以下のようにレイアウトを表示および非表示にしてみてください。

   if (line2.getVisibility() == View.INVISIBLE || line2.getVisibility() == View.GONE) {
       line2.setVisibility(View.VISIBLE); 
       line1.setVisibility(View.INVISIBLE);
    } 
   else { 
       line2.setVisibility(View.INVISIBLE); 
       line1.setVisibility(View.VISIBLE);
   } 
于 2013-03-22T11:53:31.217 に答える