1

ユーザーの行動に基づいて ImageView を表示および非表示にする必要があります。ImageView を非表示に設定しonCreate()、ユーザーが OptionsMenu でアイテムを選択したときに再度表示しようとしました。奇妙なことに、まったく表示されず、アクティビティが再開された後にのみ表示されます。

XML コードは次のとおりです。

<ImageView
    android:id="@+id/rectimage"
    android:layout_width="20dp"
    android:layout_height="20dp"
    android:src="@drawable/rect" />

イメージビューを非表示にする場所

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);

    image = (ImageView) findViewById(R.id.rectimage);
    image.setVisibility(View.INVISIBLE);
}

もう一度見えるようにしようとするところ

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {              
    case R.id.menu_visible:
        image.setVisibility(View.VISIBLE);          
    return true;
    }
    return false;
}

これは onStart と onResume で、何もしません。

@Override
protected void onStart() {
    super.onStart();
    Log.w(TAG, "-- ON Start --");

}

@Override
public void onResume() {
    super.onResume();
    Log.w(TAG, "-- ON Resume --");
}

そして、これがXMLのドローアブルリソースです

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"  android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<corners android:radius="20px"/> 
<stroke  android:width="2dip" android:color="#000000"/>  
</shape>
4

1 に答える 1

0

これは、透明な長方形を描いているためです。

<solid android:color="@android:color/transparent"/>

境界線が描かれているのが見えますか?

onOptionsItemSelectedまた、ブレークポイントが呼び出されていることを確認するためにブレークポイントを入れようとしましたか?

于 2013-04-11T16:34:24.610 に答える