0

我有一个几乎完成的应用程序,它是一个记分牌应用程序。当用户在乐谱上进行长按时,当前会出现一个对话框,其中显示带有 OK 和 CANCEL 按钮的 EditText 字段。当用户单击 EditText 字段时,会出现一个键盘(仅限数字),用户在其中键入新分数,单击 DONE,然后 EditText 字段在对话框中显示新值,当用户单击 OK 时,它会保存输入的值到显示当前分数的 TextView。

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

  1. 用户对分数进行了 LongClick
  2. 键盘出现
  3. 用户输入新分数
  4. 用户点击确定
  5. 键盘消失,值被保存到更新当前分数的 TextView。

为了做到这一点,我想到了两件事:

  1. 我可以创建一个扩展 View 的新类——我对 android 太陌生,无法真正理解这个选项。
  2. 我可以将对话框中的 EditText 替换为一个新的 XML 文件,该文件的设计类似于键盘。

选项 2:我认为这可能是最简单的,所以我设计了 XML 布局并将其命名为 keypad.xml。现在,当用户执行 LongClick 时,keypad.xml 文件会在带有 OK 和 CANCEL 的对话框中膨胀。到目前为止,一切都很好。但是,我不知道应该将按钮操作的代码放在哪里。

起初,我想我可以为布局中的所有按钮设置一些 onClick 侦听器。我认为所有按钮都将执行完全相同的功能。基本上,从按钮(在本例中为 0-9)获取文本并将其附加到键盘上方的 TextView。然后,当用户单击确定时,将 keypad.xml 中的 TextView 保存到当前分数 textview。

任何人都可以帮我指出正确的方向来完成这个吗?

这是keypad.xml的截图(数字上方有一个空的TextView): 在此处输入图像描述

这是 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" />

4

1 回答 1

0

This Question has not seemed to prompt a response. In case anyone is looking for an answer to this, I have come up with another solution which isn't exactly the same but works none the less.

Please see this question.

于 2013-01-01T18:41:01.943 回答