我在這裏是一個自定義視圖,然後我想要一些小部件去與它。自定義視圖按鈕
<com.zone.manager.Tab3
android:id="@+id/tab3_display"
android:layout_width="fill_parent"
android:layout_height="620dp" >
<Button
android:id="@+id/addZone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Zone" />
</com.zone.manager.Tab3>
現在我想有一個按鈕設置爲onclicklistener,所以我可以做的東西與它在視圖類,所以我做了這個......
addZone = (Button) findViewById(R.id.addZone);
addZone.setOnClickListener(this);
我設置的是,在
public class Tab3 extends ViewGroup implements OnTouchListener, OnClickListener
Public Tab3(Context context, AttributeSet attrs)
{
super (context, attrs);
// here
}
當我伸出的ViewGroup它讓我實現這個
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
// TODO Auto-generated method stub
}
有什麼,我suppsot爲了使這項工作放在這裏?
但是,當我嘗試運行應用程序崩潰,但是如果我// addZone.setOnClickListener(this);
應用程序運行良好,對我有幫助嗎?
標籤
th.setup();
TabSpec specs = th.newTabSpec("tag0");
specs.setContent(R.id.connecttionTab);
specs.setIndicator("Connection Tab");
th.addTab(specs);
specs = th.newTabSpec("tag1");
specs.setContent(R.id.tab1);
specs.setIndicator("Zone Manager");
th.addTab(specs);
specs = th.newTabSpec("tag2");
specs.setContent(R.id.tab2);
specs.setIndicator("",res.getDrawable(R.drawable.ic_tab_vaccontrol));
th.addTab(specs);
//this is the tab that has all this vvv
specs = th.newTabSpec("tag3");
specs.setContent(R.id.tab3);
specs.setIndicator("Graphical Layout");
th.addTab(specs);
當您更改爲ViewGroup時,您是否還更改了xml,以便Button是嵌套在Tab3元素內的子元素?如果它只是像你發佈的xml一樣,它仍然不會被'findViewById'找到。而且,是的,您需要實現'onLayout'來決定每個子元素(在這種情況下,只是按鈕)應該放在父Tab3元素的範圍內。 –
IM抱歉,但我不明白這是什麼意思。你能幫我解釋一下嗎? –
在我的答案中查看我的第一個示例xml代碼。請注意,第一個標籤不會結束'Tab3'元素。 (它以'>'而不是'/>'結尾,'Button'標籤後面有一個''標籤。)'Button'元素是一個孩子,而不是'Tab3'的兄弟姐妹。 –