2012-06-29 19 views
2

我需要創建一個自定義視圖,該視圖擴展了RelativeLayout,並且只需要擁有與此自定義視圖的大小相同的imageView。同時創建cutomView不會添加視圖?

我的代碼是:

public class MyCustomButton extends RelativeLayout { 

ImageView buttonCoverImage; 

public MyCustomButton(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

public MyCustomButton(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public MyCustomButton(Context context) { 
    super(context); 

    setClickable(true); 
    setFocusable(true); 
    setEnabled(true); 

    buttonCoverImage = new ImageView(getContext()); 

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    setLayoutParams(lp); 

    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
    lp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 

    buttonCoverImage.setLayoutParams(new RelativeLayout.LayoutParams(100, 100)); 

    buttonCoverImage.setBackgroundResource(R.drawable.button_selector); 
    buttonCoverImage.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View arg0) { 
      performClick(); 
     } 
    }); 

    this.addView(buttonCoverImage); 
} 
} 

而在XML中,我創造了這個觀點,如:

問題是我不能看到buttonCoverImage?不知何故,它沒有被創建,或添加到myCustomView ...問題是什麼?

回答

4

如果通過XML添加視圖,那麼Android將實現構造

public MyCustomButton(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

而在你的情況下,它是空的。我認爲這是你的問題。

+0

地獄是啊!我不能相信這是easyyy,謝謝=) – yahya

+0

只是在這個構造函數中使用LogCat。如果我是對的,你會看到你的日誌文本。希望我是對的) –

+0

Yeap,你絕對是對的=)再次感謝。問題解決了=) – yahya

相關問題