2013-01-06 39 views
1

我試圖把在TabWidget一個按鈕,這意味着我希望看到所有的標籤和最右邊的一個將是一個按鈕。
我不能用XML做到這一點(這將是有益的,如果有人能告訴我如何),所以我已經通過代碼添加的按鈕。 問題是按鈕不點擊,我聽到來自設備的咔嗒聲,但沒有任何反應,我沒有看到OnClickListener被調用。
你能看看代碼並告訴我我做錯了什麼嗎?
此代碼是在我的活動onCreate()按鈕在TabWidget

TabWidget tabWidget = (TabWidget)findViewById(android.R.id.tabs); 

Button button = new Button(this); 
button.setBackgroundResource(R.drawable.settings); 
button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); 
button.setClickable(true); 
button.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     LogWrapper.d(TAG, "************************************"); 
     startActivity(new Intent(MyActivity.this, SettingsActivity.class)); 
    } 
}); 
tabWidget.addView(button); 
+0

你嘗試調試呢? – deadfish

+0

是的,該功能未被調用。 – Yaniv

回答

1

我有一個解決方案,我不知道它是否是最好的,但它是提供的東西。

我已經建立了XML文件中有一個單獨的按鈕,它充氣,並把它添加到TabWidget,這似乎工作。

settings_button.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/settingsButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/settings" > 
    </Button> 

</LinearLayout> 

MyActivity.java

TabWidget tabWidget = (TabWidget)findViewById(android.R.id.tabs); 

View layout = LayoutInflater.from(this).inflate(R.layout.settings_button, null); 
Button button = (Button)layout.findViewById(R.id.settingsButton); 
button.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     LogWrapper.d(TAG, "*****************************************************"); 
     startActivity(new Intent(MyActivity.this, SettingsActivity.class)); 
    } 
}); 
layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tabWidget.addView(layout); 

無論如何,這是我的解決方案的報價。檢查完畢後,TabWidget中的按鈕看起來不太好。我會考慮如何處理它。

+0

這是一個不錯的解決方案,關於這個按鈕,你可以設計它的樣式,它會像魅力一樣盲目;) –