2012-12-29 42 views
0

我正在製作一個安裝了複選框的Android應用程序。我在一些使用XML文件的示例中添加了一些內容,只是爲了讓佈局看起來如何。當我在使用XML文件時使用複選框時,它有一個邊框,但是當我使用Java以編程方式添加複選框時,它會擺脫它周圍的邊框,幾乎不可能看到複選框。Android複選框邊框消失使用Java

我想知道的是如何將複選框的格式設置爲與XML樣式相同?它可以使用LayoutParams完成,還是有一些其他的方式嗎?我已閱讀setButtonDrawable或其他內容,但不知道如何去做,有人可以指點我一個基本的教程,如果這是要走的路?

XML複選框 xml checkbox image http://redsquirrelsoftware.co.uk/xml.jpg

Java的複選框 java checkbox image http://redsquirrelsoftware.co.uk/java.jpg

XML代碼

<CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="30dp" 
     android:text="@string/checkbox" /> 

Java代碼:

CheckBox checkbox = new CheckBox(this); 
    checkbox.setText(R.string.checkbox); 
    checkbox.setTextSize(TypedValue.COMPLEX_UNIT_PT, 10); 
    checkbox.setTextColor(Color.BLACK); 
+0

任何代碼以顯示XML定義以及您的編程方法? – sahhhm

+0

編輯該問題以包含代碼 – crazyloonybin

回答

0

好吧,它實際上是要在XML文件中使用的標準檢查框造型,但只有當我關閉該應用程序並重新打開它。我猜這可能是因爲我在開發者模式下通過Eclipse從Eclipse運行它。

只要我將它上傳到Play商店,看看它是否按照預期的方式工作,我們會對它進行測試。不是世界上最大的問題,如果應用程序必須重新打開才能正常顯示。

0

有關添加填充如何? checkbox.setPadding(0,0,30,0);

+0

所做的只是將「已完成」文本移動到實際框的後面,因此對勾已經覆蓋了文本 - 仍然沒有邊框。 – crazyloonybin

0

我想這和作品,也許是因爲你沒有設置的LayoutParams

CheckBox checkbox = new CheckBox(this); 
checkbox.setText("completed"); 
checkbox.setTextSize(TypedValue.COMPLEX_UNIT_PT, 10); 
checkbox.setTextColor(Color.BLACK); 
checkbox.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

LinearLayout layout = (LinearLayout)findViewById(R.id.layoutku); 
layout.addView(checkbox); 
+0

我目前的佈局是TableRow,所以我嘗試使用'TableRow.LayoutParams',但它並沒有改變外觀。用'LinearLayout.LayoutParams'也嘗試過,但是這使得整個複選框消失。 – crazyloonybin