2017-04-13 2 views
0

Ich habe eine Zeitauswahl in meinem benutzerdefinierten Dialogfeld. Dies ist das Ergebnis:Ändern Hintergrundfarbe des Timepickers im Dialog

enter image description here

Dies ist mein Code:

<style name="DialogStyler2" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="android:background">#FFFFFF</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:windowNoTitle">true</item> 
</style> 

final Dialog dialog = new Dialog(SabadKharid_s1.this, R.style.DialogStyler2); 
        dialog.setContentView(R.layout.dialogtime); 

        timePicker = (TimePicker) dialog.findViewById(R.id.timePicker); 
        timePicker.setIs24HourView(true); 

        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
        lp.copyFrom(dialog.getWindow().getAttributes()); 
        lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
        lp.height = WindowManager.LayoutParams.WRAP_CONTENT; 
        dialog.show(); 
        dialog.getWindow().setAttributes(lp); 

Wie Sie sehen können, die Stunde und Minute textView in Titel der weiß sind. Wie kann ich ihre Hintergrundfarbe ändern?

+0

ich denke, die Hintergrundfarbe des Dialogs weiß ist, weil ' #FFFFFF '. Versuchen Sie es in eine andere Farbe zu ändern –

Antwort

0

Hintergrund wird nicht funktionieren, versuchen Sie dies -

<style name="DialogStyler2" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="android:colorAccent">@color/your_accent</item> 
    <item name="android:colorPrimary">@color/your_primary</item> 
    <item name="android:colorPrimaryDark">@color/your_primary_dark</item> 
</style> 
0

Sie den Code unten entnehmen können die Timepicker Stil zu erhalten.

MainActivity.java

import static android.R.attr.button; 
public class MainActivity extends AppCompatActivity { 
    Calendar calendar ; 
    Button button; 
    TimePickerDialog timePickerDialog ; 
    int CalendarHour, CalendarMinute; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button = (Button)findViewById(R.id.button); 
     calendar = Calendar.getInstance(); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       CalendarHour = calendar.get(Calendar.HOUR_OF_DAY); 
       CalendarMinute = calendar.get(Calendar.MINUTE); 
       timePickerDialog = new TimePickerDialog(MainActivity.this, R.style.DialogTheme,new TimePickerDialog.OnTimeSetListener() { 
        @Override 
        public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { 
         Toast.makeText(MainActivity.this, "Time Selected"+selectedHour+":"+selectedMinute, Toast.LENGTH_SHORT).show(); 
        } 
       }, CalendarHour, CalendarMinute, true);//Yes 24 hour time 
       timePickerDialog.setTitle("Select Time"); 
       timePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { 
        @Override 
        public void onCancel(DialogInterface dialogInterface) { 
         Toast.makeText(MainActivity.this, "Time Not Selected", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
       timePickerDialog.show(); 
      } 
     }); 
    } 
} 

Activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="CLICK HERE TO SHOW TIME PICKER DIALOG WITH MATERIAL DESIGN THEME" 
     android:id="@+id/button" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

Style.xml

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">@color/purple</item> 
    <item name="colorControlNormal">@color/orange</item> 
</style> 
0

Dies geschieht, wenn Sie die Farbe von 'Hintergrund' und nicht 'windowBackground' ändern . Dieser arbeitete für mich:

styles.xml

<style name="DialogTheme" parent="Theme.AppCompat.Dialog"> 
    <item name="android:windowBackground">#333</item> 
    <item name="colorAccent">#2BF</item> 
</style> 

MainActivity.java

Calendar cal = Calendar.getInstance(); 
TimePickerDialog tpd = new TimePickerDialog(
     this, 
     R.style.DialogTheme, 
     this, // must implement TimePickerDialog.OnTimeSetListener 
     cal.get(Calendar.HOUR_OF_DAY), 
     cal.get(Calendar.MINUTE), 
     false); 

tpd.show(); 
Verwandte Themen