2012-12-28 31 views
0

我有一個應用程序,我已經差不多完成了這是一個記分牌應用程序。當用戶在樂譜上做LongClick時,會出現一個對話框,其中顯示帶有OK和CANCEL按鈕的EditText字段。當用戶單擊EditText字段時,會出現一個鍵盤(僅限數字),用戶在其中輸入新樂譜,單擊DONE,然後EditText字段在對話框中顯示新值,當用戶單擊確定時,會保存輸入的值到顯示當前分數的TextView。自定義鍵盤 - 如何使這些按鈕功能?

問題是我覺得這很麻煩。這是我想發生什麼:

  1. 用戶執行LongClick上得分
  2. 鍵盤出現
  3. 用戶進入新的得分
  4. 用戶點擊OK
  5. 鍵盤消失和值保存到TextView更新當前分數。

爲了做到這一點,我想到兩兩件事:

  1. 我可以創建擴展查看一個新類 - 我太新到Android真正理解這個選項。
  2. 我可以使用像鍵盤一樣設計的新XML文件替換對話框中的EditText。

選項2:我想這可能是最簡單的,所以我設計了XML佈局並將其命名爲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" /> 

回答

0

這個問題已經不似乎提示了一個迴應。如果有人正在尋找答案,我已經提出了另一種解決方案,它不完全相同,但都能夠起作用。

Please see this question.