{"id":1,"date":"2009-01-16T16:39:41","date_gmt":"2009-01-16T23:39:41","guid":{"rendered":"http:\/\/www.connorgarvey.com\/blog\/?p=1"},"modified":"2010-02-12T09:49:36","modified_gmt":"2010-02-12T16:49:36","slug":"hello-world","status":"publish","type":"post","link":"https:\/\/connorgarvey.com\/blog\/?p=1","title":{"rendered":"Large, finger-sized buttons in Android"},"content":{"rendered":"<p>July 18, 2009: Updated for Android 1.5<\/p>\n<p>Recently, I created a simple dial pad style number dialog.\u00a0 I wanted to make the numbers as large as possible to make finger input simple.\u00a0 Getting the buttons to stretch evenly and not look strange turned out to be a challenge, but I eventually arrived at a solution.\u00a0 <strong>For the full source, scroll down<\/strong>.<\/p>\n<div id=\"attachment_38\" style=\"width: 316px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-38\" data-attachment-id=\"38\" data-permalink=\"https:\/\/connorgarvey.com\/blog\/?attachment_id=38\" data-orig-file=\"https:\/\/connorgarvey.com\/blog\/wp-content\/uploads\/2009\/01\/bigbuttons.jpg\" data-orig-size=\"306,433\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Big buttons\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Big buttons in Android&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/connorgarvey.com\/blog\/wp-content\/uploads\/2009\/01\/bigbuttons-212x300.jpg\" data-large-file=\"https:\/\/connorgarvey.com\/blog\/wp-content\/uploads\/2009\/01\/bigbuttons.jpg\" class=\"size-full wp-image-38\" title=\"Big buttons\" src=\"http:\/\/www.connorgarvey.com\/blog\/wp-content\/uploads\/2009\/01\/bigbuttons.jpg\" alt=\"Big buttons in Android\" width=\"306\" height=\"433\" srcset=\"https:\/\/connorgarvey.com\/blog\/wp-content\/uploads\/2009\/01\/bigbuttons.jpg 306w, https:\/\/connorgarvey.com\/blog\/wp-content\/uploads\/2009\/01\/bigbuttons-212x300.jpg 212w\" sizes=\"auto, (max-width: 306px) 100vw, 306px\" \/><p id=\"caption-attachment-38\" class=\"wp-caption-text\">Big buttons in Android<\/p><\/div>\n<ul>\n<li>The dialog uses a relative layout.\u00a0 It&#8217;s usually best at placing objects on the screen no matter what the resolution or orientation.<\/li>\n<li>The numbers are contained in a table layout, which is good at spacing things evenly.<\/li>\n<li>To get the numbers to stretch to the bottom of the screen, layout_above is set to the OK button, which is aligned to the bottom of the dialog.\u00a0 The width is fill_parent so that the buttons fill the width of the screen.<\/li>\n<li>To get each row to be the same height in HTML, you would set the height to a percent.\u00a0 In Android, use layout_weight.\u00a0 Setting the weight of each row to the same value will make them the same size.<\/li>\n<li>Also use layout_weight on each button to even out their widths.<\/li>\n<li>In version 1.5, Android started to be &#8220;smart&#8221; about how it lays out items.\u00a0 Since the content of the &#8220;Back&#8221; button is longer than any other button, Android will make that column in the table wider.\u00a0 It will do so even though the layout weights of all of the items are the same.\u00a0 To override that behavior, set the width of every item to 0.\u00a0 That way, when Android stretches the buttons out to fit in the table, every button will start from the same width, 0.<\/li>\n<\/ul>\n<div id=\"wpshdo_1\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_1\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_1\"><\/a><a id=\"wpshat_1\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_1\"  onClick=\"javascript:wpsh_toggleBlock(1)\" title=\"Click to show\/hide code block\">Code block<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_code(1)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_print(1)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_1\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"xml\" style=\"font-family:monospace;\"><span class=\"sc3\"><span class=\"re1\">&lt;?xml<\/span> <span class=\"re0\">version<\/span>=<span class=\"st0\">&quot;1.0&quot;<\/span> <span class=\"re0\">encoding<\/span>=<span class=\"st0\">&quot;utf-8&quot;<\/span><span class=\"re2\">?&gt;<\/span><\/span>\n<span class=\"sc-1\">&lt;!--<\/span>\n<span class=\"sc-1\">Layout for a number input dialog<\/span>\n<span class=\"sc-1\">Author: Connor Garvey<\/span>\n<span class=\"sc-1\">Created: Jan 11, 2009<\/span>\n<span class=\"sc-1\">Version 0.0.4<\/span>\n<span class=\"sc-1\">Since 0.0.4<\/span>\n<span class=\"sc-1\">--&gt;<\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;RelativeLayout<\/span> <span class=\"re0\">xmlns:android<\/span>=<span class=\"st0\">&quot;http:\/\/schemas.android.com\/apk\/res\/android&quot;<\/span><\/span>\n<span class=\"sc3\">    <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">    <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">    <span class=\"re0\">android:padding<\/span>=<span class=\"st0\">&quot;7dip&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n  <span class=\"sc3\"><span class=\"re1\">&lt;EditText<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/number&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:background<\/span>=<span class=\"st0\">&quot;@android:drawable\/editbox_background&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:cursorVisible<\/span>=<span class=\"st0\">&quot;false&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;wrap_content&quot;<\/span>  <span class=\"re2\">\/&gt;<\/span><\/span>\n  <span class=\"sc3\"><span class=\"re1\">&lt;View<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/numberSeparator0&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;4dp&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_below<\/span>=<span class=\"st0\">&quot;@id\/number&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n  <span class=\"sc3\"><span class=\"re1\">&lt;View<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/numberSeparator1&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:background<\/span>=<span class=\"st0\">&quot;@drawable\/black_white_gradient&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;1dp&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_below<\/span>=<span class=\"st0\">&quot;@id\/numberSeparator0&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n  <span class=\"sc3\"><span class=\"re1\">&lt;View<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/numberSeparator2&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;4dp&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_below<\/span>=<span class=\"st0\">&quot;@id\/numberSeparator1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n  <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/ok&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;wrap_content&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;@string\/message_ok&quot;<\/span><\/span>\n<span class=\"sc3\">      <span class=\"re0\">android:layout_alignParentBottom<\/span>=<span class=\"st0\">&quot;true&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n\t<span class=\"sc3\"><span class=\"re1\">&lt;TableLayout<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/row1&quot;<\/span><\/span>\n<span class=\"sc3\">\t    <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">\t    <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;wrap_content&quot;<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_below<\/span>=<span class=\"st0\">&quot;@id\/numberSeparator2&quot;<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_above<\/span>=<span class=\"st0\">&quot;@id\/ok&quot;<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;TableRow<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n1&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;1&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n2&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;2&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n3&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;3&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;\/TableRow<span class=\"re2\">&gt;<\/span><\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;TableRow<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n4&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;4&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n5&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;5&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n6&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;6&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;\/TableRow<span class=\"re2\">&gt;<\/span><\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;TableRow<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n7&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;7&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n8&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;8&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n9&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;9&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;\/TableRow<span class=\"re2\">&gt;<\/span><\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;TableRow<\/span><\/span>\n<span class=\"sc3\">        <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;TextView<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/n0&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;0&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n      <span class=\"sc3\"><span class=\"re1\">&lt;Button<\/span> <span class=\"re0\">android:id<\/span>=<span class=\"st0\">&quot;@+id\/back&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_width<\/span>=<span class=\"st0\">&quot;0dip&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_height<\/span>=<span class=\"st0\">&quot;fill_parent&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:text<\/span>=<span class=\"st0\">&quot;Back&quot;<\/span><\/span>\n<span class=\"sc3\">          <span class=\"re0\">android:layout_weight<\/span>=<span class=\"st0\">&quot;1&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n    <span class=\"sc3\"><span class=\"re1\">&lt;\/TableRow<span class=\"re2\">&gt;<\/span><\/span><\/span>\n  <span class=\"sc3\"><span class=\"re1\">&lt;\/TableLayout<span class=\"re2\">&gt;<\/span><\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;\/RelativeLayout<span class=\"re2\">&gt;<\/span><\/span><\/span><\/pre><\/div><\/div>\n<p>It is difficult to get references to buttons in dialogs.  You first have to inflate the dialog&#8217;s view, then you can find a button by its ID.<\/p>\n<div id=\"wpshdo_2\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_2\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_2\"><\/a><a id=\"wpshat_2\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_2\"  onClick=\"javascript:wpsh_toggleBlock(2)\" title=\"Click to show\/hide code block\">Code block<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_code(2)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_print(2)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/connorgarvey.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_2\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"java\" style=\"font-family:monospace;\">LayoutInflater inflater <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span>LayoutInflater<span class=\"br0\">&#41;<\/span>context.<span class=\"me1\">getSystemService<\/span><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Acontext+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky\"><span class=\"kw3\">Context<\/span><\/a>.<span class=\"me1\">LAYOUT_INFLATER_SERVICE<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky\"><span class=\"kw3\">View<\/span><\/a> view <span class=\"sy0\">=<\/span> inflater.<span class=\"me1\">inflate<\/span><span class=\"br0\">&#40;<\/span>R.<span class=\"me1\">layout<\/span>.<span class=\"me1\">number_input_dialog<\/span>, <span class=\"kw2\">null<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"kw1\">this<\/span>.<span class=\"me1\">button0<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Abutton+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky\"><span class=\"kw3\">Button<\/span><\/a><span class=\"br0\">&#41;<\/span>view.<span class=\"me1\">findViewById<\/span><span class=\"br0\">&#40;<\/span>R.<span class=\"me1\">id<\/span>.<span class=\"me1\">n0<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"kw1\">this<\/span>.<span class=\"me1\">button0<\/span>.<span class=\"me1\">setOnClickListener<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw1\">new<\/span> NumberButtonListener<span class=\"br0\">&#40;<\/span><span class=\"kw1\">this<\/span>.<span class=\"me1\">number<\/span>, <span class=\"st0\">&quot;0&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>July 18, 2009: Updated for Android 1.5 Recently, I created a simple dial pad style number dialog.\u00a0 I wanted to make the numbers as large as possible to make finger input simple.\u00a0 Getting the buttons to stretch evenly and not look strange turned out to be a challenge, but I eventually arrived at a solution.\u00a0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[57],"tags":[3,4,6,5,7],"class_list":["post-1","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-java","tag-layout","tag-programming","tag-redpoint"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1ql2n-1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1"}],"version-history":[{"count":16,"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":212,"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions\/212"}],"wp:attachment":[{"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/connorgarvey.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}