自定义键盘 - 如何使这些按钮正常工作?

时间:2012-12-28 00:24:51

标签: java android

我有一个我差不多完成的应用程序,它是一个记分牌应用程序。当用户对乐谱进行LongClick时,当前会出现一个对话框,其中显示带有“确定”和“取消”按钮的EditText字段。当用户单击EditText字段时,会出现一个键盘(仅限数字),用户在其中键入新乐谱,单击DONE,然后EditText字段在对话框中显示新值,当用户单击OK时,它将保存输入的值显示当前分数的TextView。

问题是我觉得很麻烦。这就是我想要发生的事情:

  1. 用户执行LongClick on score
  2. 小键盘出现
  3. 用户输入新分数
  4. 用户点击确定
  5. 键盘消失,值将保存到TextView,更新当前分数。
  6. 为了实现这一目标,我想到了两件事:

    1. 我可以创建一个扩展View的新类 - 我对android来说太新了,无法真正理解这个选项。
    2. 我可以用一个设计类似键盘的新XML文件替换对话框中的EditText。
    3. 选项2:我认为这可能是最简单的,所以我设计了XML Layout并将其命名为keypad.xml。现在,当用户执行LongClick时,keypad.xml文件会在OK和CANCEL的对话框中膨胀。到现在为止还挺好。但是,我不知道应该在哪里放置按钮操作的代码。

      首先想到,我想我可以设置一些onClick监听器,它适用于布局中的所有按钮。我认为所有按钮都将执行完全相同的功能。基本上,从按钮获取文本(在这种情况下为0-9)并将其附加到键盘正上方的TextView。然后,当用户单击“确定”时,将keypad.xml中的T​​extView保存到当前得分textview。

      任何人都可以帮我指出正确的方向来实现这个目标吗?

      这是keypad.xml的屏幕截图(数字上方有一个空的TextView): enter image description here

      以下是XML代码:

      <?xml version="1.0" encoding="utf-8"?>
      <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="fill"
      android:columnCount="3" >
      
      <TextView
          android:id="@+id/textView1"
          android:layout_columnSpan="3"
          android:layout_gravity="fill"
          android:gravity="right|center_vertical"
          android:textSize="24sp" />
      
      <Button android:text="1" />
      
      <Button android:text="2" />
      
      <Button android:text="3" />
      <Button android:text="4" />
      <Button android:text="5" />
      <Button android:text="6" />
      <Button android:text="7" />
      <Button android:text="8" />
      <Button android:text="9" />
      
      <Button
          android:layout_columnSpan="3"
          android:layout_gravity="fill"
          android:gravity="center"
          android:text="0" />
      

1 个答案:

答案 0 :(得分:0)

这个问题似乎没有引起回应。如果有人正在寻找这个问题的答案,我已经提出了另一种解决方案,这种解决方案并不完全相同,但仍然有效。

Please see this question.