2012-12-13 20 views
0

我有一個包含ImageView的標題設計,它對我的​​應用程序中的所有佈局都很常見。我想設置一些按鈕的ImageView可見onclick。 ImageView必須在所有活動中可見。我正在使用.setVisibility(View.VISIBLE);,但它不適用於所有活動。如何設置ImageView通過Android應用程序的標題可見

+1

使用片段或靜態變量將設置onClick的按鈕,並將在onCreate檢查所有活動,以確定是否使其可見 – Atrix1987

+0

你包括所有活動都使用相同的頭文件xml? –

回答

0

您可以創建一個名爲「MyHeaderVisibility」的類,其中包含一個靜態布爾變量,稱爲「imagevisibility」。根據此布爾變量爲所有活動設置標題圖像的可見性。你應該很好走。

Button b = (Button) findViewById(R.id.yourbuttonid); 
    b.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
        MyHeaderVisibility.imagevisibility = true; 
      } 
    } 
1

有實現這一任務的許多方面:

class MyHeaderVisibility{ 
      static boolean imagevisibility = false; 
    } 

點擊一個按鈕事件」,你可以通過改變知名度。其中一個簡單的任務是通過使用ViewStub來實現共同的標題。請按照以下步驟操作:

  1. 使用ImageView或任何其他小部件定義header.xml。
  2. 現在採取ViewStub的其他活動的XML佈局例如佈局內:main.xml中

    <!-- Included header.xml here --> 
    <ViewStub android:id="@+id/vsHeader" 
        android:inflatedId="@+id/header" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout="@layout/header" /> 
    
    <TextView 
        android:id="@+id/textView1" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:gravity="center" 
        android:text="@string/txtDemo" /> 
    

  3. 定義從那裏你可以控制的ImageView的可視性一個BaseActivity類。

    abstract public class BaseActivity extends Activity{ 
    
    protected View header; 
    protected View footer; 
    
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        requestWindowFeature(Window.FEATURE_NO_TITLE); 
    } 
    
        @Override 
    public void setHeader(Activity activity, boolean visible) { 
        if (visible) { 
         activity.findViewById(R.id.vsHeader).setVisibility(View.VISIBLE); 
         header = findViewById(R.id.header); 
          } else 
         activity.findViewById(R.id.vsHeader).setVisibility(View.GONE); 
        } 
    } 
    
  4. 現在擴展了這一BaseActivity所有其他的活動,這樣您就可以訪問這些方法。

所以在上面第3步,你可以調用的setHeader()方法真/假的可見價值。你可以在這裏查看詳細的例子:Android – ViewStub example

+1

真的很努力。 +1。 – Android

+0

@BlackDevil Thanx男人:) –

相關問題