2011-04-18 5 views
1

스타일을 사용하여 Android에서 애플리케이션을 구현해야합니다. styles.xml에서 각 객체의 스타일을 다르게 지정 했으므로 Textview, Buttons, editviews와 같은 다른 스타일을 지정할 수 있습니다. 그러나 회전하지 않는 특별한 경우에는 작동하지 않습니다. 이 레이아웃 main.xml에있다스피너에서 스타일을 변경하는 문제

:이 내 예입니다

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

    > 
<TextView 
    style="@style/TextviewVerde" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/escribenombre" 
    /> 
<EditText 
    style="@style/EditviewAzul" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/TxtNombre" 

    /> 
<Spinner 
    style="@style/SpinnerRojo" 
    android:textColor="#FFFFFF" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/TxtSpinner" 
    android:prompt="@string/seleccionetexto" 

/> 
<Button 
    style="@style/BotonBlanco" 
    android:id="@+id/BtnHola" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Pulse aqui" 
    /> 

</LinearLayout> 

이는 styles.xml입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <style name="TextviewVerde" > 
     <item name="android:textColor">#00FF00</item> 
     <item name="android:typeface">normal</item> 
     <item name="android:textSize">5pt</item> 
     <item name="android:gravity">center</item> 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
    </style> 

    <style name="TextviewRosa" > 
     <item name="android:textColor">#5F04B4</item> 
     <item name="android:typeface">normal</item> 
     <item name="android:textSize">15pt</item> 
     <item name="android:gravity">center</item> 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
    </style> 

    <style name="EditviewAzul" > 
     <item name="android:textColor">#0000FF</item> 
     <item name="android:textSize">8pt</item> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:shadowColor">#0000FF</item>  
    </style> 

    <style name="SpinnerRojo" > 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:textColor">#DF0101</item> 
     <item name="android:gravity">center</item> 
     <item name="android:typeface">normal</item> 
     <item name="android:textSize">11pt</item> 
     <item name="android:drawSelectorOnTop">true</item> 

    </style> 

    <style name="BotonBlanco"> 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:textSize">12pt</item> 
     <item name="android:gravity">center_vertical|center_horizontal</item> 
     <item name="android:textColor">#FFFFFF</item> 
     <item name="android:shadowColor">#FF000000</item> 
     <item name="android:clickable">true</item>  
    </style> 

</resources> 

모든 객체가 잘 작동하지만, 스피너하지 않습니다 외관을 바꾼다. 내 상사는 * .java 파일을 변경하지 않고 스타일을 구현해야한다고 말했는데 무엇을 할 수 있습니까 ?? 난 당신이 작성해야합니다, 스피너를 클릭하면

+0

스타일에 정의한 값을 덮어 쓰고 있습니다. 당신이 성취하고자하는 것에 대해보다 구체적이고 명확해야합니다. –

+0

미안 코드를 덮어 쓴 것에 대해 회 전자, listview 등의 스타일을 변경하고 싶습니다. (옵션의 색상, 배경색 등을 변경합니다.) * .java 코드를 변경하지 않고, 회 전자의 변경이 가능하기 때문에 스타일을 사용하지만 스타일 만 사용하고 싶습니다. – David

답변

0

사용자 정의 스타일 드롭 다운을하려면 도움 등 일부 사진을 .. 덕분에 많이 추가, 스피너 옵션를 backgound의 색상을 변경해야 목록의 행을 정의하는 레이아웃 xml에 대한 참조가있는 사용자 정의 어댑터. 예를 들어

는 :

String[] elements = {"optionA", "optionB"}; 
Spinner s = (Spinner) findViewById(R.id.your_spinner_id); 
ArrayAdapter adapter = new ArrayAdapter<String>(this, 
R.id.textViewId, elements); 
adapter.setDropDownViewResource(R.layout.your_dropdown_layout); 

textViewId는 your_dropdown_layout에서 아이 뷰 있어야 할 곳에.

희망을 얻었습니다.

리피토컴

관련 문제