2017-05-29 35 views
-1

我有一個編輯文本。它的值以編程方式設置爲90.00。當我點擊編輯文本進行編輯時,它必須在編輯屏幕中顯示0.00,然後用戶可以將其編輯爲50.00。如何在Android的單擊編輯文本時如何在編輯文本的編輯畫面中設置值,然後用戶可以更改它

http://imgur.com/a/AlGOm

做到這一點我想是這樣的,但是當我關閉編輯文本的編輯屏幕編輯文本得到改變。

textPayNote.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
        @Override 
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
         textPayNote.setText("0.00"); 
         return false; 
        } 
       }); 
+1

用setOnTouchListener.ACTION_DOWN做到這一點 –

+0

@EliasFazel它的工作謝謝兄弟。 – venutamizh

回答

1

您的EditText &集實現OnTouchListener /上MotionEvent.ACTION_DOWN追加文本。

+1

textPayNote.setOnTouchListener(新View.OnTouchListener(){ @覆蓋 公共布爾onTouch(視圖V,MotionEvent事件){ 如果(event.getAction()== MotionEvent.ACTION_DOWN){ textPayNote.setText(「0.00 「); } return false; } }); – venutamizh

2
textPayNote.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      textPayNote.setText("0.00"); 
     } 
    }); 

OR

textPayNote.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean b) { 
      if (focused) { 
       textPayNote.setText("0.00"); 
      } 
     } 
    }); 
+0

第一個代碼段在第二個實例中有效。我點擊編輯文本編輯屏幕沒有變化。當我再次點擊編輯文本時,編輯屏幕上的值爲零。 – venutamizh

+0

隨着第二個片段,在第一次點擊,它變爲0.00,但它不會帶我到編輯屏幕。我再次點擊編輯屏幕。有沒有什麼辦法可以做到這一點點擊 – venutamizh

+0

將這添加到您的EditText中的layout.xml文件,它應該按預期工作。機器人:focusableInTouchMode = 「假」 –

0
<EditText 
     android:id="@+id/payNote" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:focusableInTouchMode="true" 
     android:gravity="end" 
     android:hint="Amount" 
     android:imeOptions="actionDone" 
     android:inputType="numberDecimal" 
     android:textColor="@android:color/black" 
     android:textColorHint="@android:color/darker_gray" 
     android:textSize="20sp" /> 


textPayNote.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      textPayNote.setText("0"); 
     } 
    }); 
1

以利亞Fazel指出setOnTouchListener的伎倆。

textPayNote.setOnTouchListener(new View.OnTouchListener() { 
         @Override 
         public boolean onTouch(View v, MotionEvent event) { 
          if (event.getAction()==MotionEvent.ACTION_DOWN) { 
           textPayNote.setText("0.00"); 
          } 
          return false; 
         } 
        }); 
+0

謝謝@EliasFazel – venutamizh

+0

我寫了答案,請評價並接受它作爲答案。感謝 –