diff --git a/res/layout-xlarge/item_group_membership.xml b/res/layout-xlarge/item_group_membership.xml
index 1b47b9e..62d20b4 100644
--- a/res/layout-xlarge/item_group_membership.xml
+++ b/res/layout-xlarge/item_group_membership.xml
@@ -32,17 +32,19 @@
         android:textColor="@color/editor_label_text_color"
         android:ellipsize="marquee" />
 
-    <!-- TODO: Change to android.R.attr.spinnerTextStyle when available-->
-    <TextView
-        style="?android:attr/editTextStyle"
+    <!-- TODO: Change to android.R.attr.spinnerTextStyle when available
+            style="?android:attr/editTextStyle"
+    -->
+    <Button
         android:id="@+id/group_list"
         android:layout_width="0dip"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:textAppearance="?android:attr/textAppearanceMedium"
-        android:gravity="left"
+        android:gravity="left|center_vertical"
         android:ellipsize="end"
         android:focusable="true"
+        android:paddingLeft="18dip"
     />
     
     <!-- Plus/Minus button only for layout. This makes the editor lay out nicely with the other fields -->
diff --git a/src/com/android/contacts/editor/EventFieldEditorView.java b/src/com/android/contacts/editor/EventFieldEditorView.java
index eb75e5c..fb196fe 100644
--- a/src/com/android/contacts/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -32,7 +32,9 @@
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.AttributeSet;
+import android.view.Gravity;
 import android.view.View;
+import android.widget.Button;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
@@ -49,7 +51,7 @@
      */
     private final int DEFAULT_HOUR = 8;
 
-    private TextView mDateView;
+    private Button mDateView;
 
     public EventFieldEditorView(Context context) {
         super(context);
@@ -125,8 +127,14 @@
         if (mDateView == null) {
 
             // TODO: Change to android.R.attr.spinnerTextStyle when available
-            mDateView = new TextView(getContext(), null, android.R.attr.editTextStyle);
-            mDateView.setFocusable(true);
+            // mDateView = new Button(getContext(), null, android.R.attr.editTextStyle);
+            mDateView = new Button(getContext());
+            // TODO: Remove hard-coded padding and gravity when android.R.attr.spinnerTextStyle
+            // becomes available
+            mDateView.setPadding(18, mDateView.getPaddingTop(),
+                    mDateView.getPaddingRight(), mDateView.getPaddingBottom());
+            mDateView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
+
             mDateView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
                     LayoutParams.WRAP_CONTENT));
             mDateView.setEnabled(isEnabled() && !readOnly);
@@ -145,7 +153,10 @@
     private void rebuildDateView() {
         final EditField editField = getKind().fieldList.get(0);
         final String column = editField.column;
-        final String data = DateUtils.formatDate(getContext(), getEntry().getAsString(column));
+        String data = DateUtils.formatDate(getContext(), getEntry().getAsString(column));
+        if (TextUtils.isEmpty(data)) {
+            data = " ";
+        }
         mDateView.setText(data);
     }
 
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index 77da0f0..ad246e5 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -181,7 +181,11 @@
         }
 
         mGroupList.setEnabled(isEnabled());
-        mGroupList.setText(sb);
+        if (sb.length() == 0) {
+            mGroupList.setText(" ");
+        } else {
+            mGroupList.setText(sb);
+        }
         setVisibility(VISIBLE);
 
         if (!mDefaultGroupVisibilityKnown) {
