2013-10-06 73 views
0

我有一個EditText,爲此我想在文本樣式聚焦時更改文本樣式,其內容等於默認內容。以下是代碼片段:虛擬鍵盤在第一次觸摸時不會出現

input.setOnFocusChangeListener(new OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      if (input.getText().toString().equals(defaultText)) { 
       input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 
       input.setText(""); 
      } 
     } 
    } 
}); 

的問題是,虛擬鍵盤顯示不出來,當我接觸這個EditText的第一時間(文本光標不會出現在EditText內),但它顯示的鍵盤當我再碰它一次。如果我刪除此行:

input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 

然後在鍵盤顯示出來的第一時間,當我觸摸EditText。 反正有沒有刪除上面的代碼行使鍵盤顯示在第一次觸摸?

任何幫助將不勝感激。

P/S:我用了一個片段裏面,這就是爲什麼我需要調用 「getActivity()」

回答

2

給它一個鏡頭

input.setOnFocusChangeListener(new OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (hasFocus) { 
        v.performClick(); 
        } 
       } 
      } 
     }); 

input.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (input.getText().toString().equals(defaultText)) { 
         input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 
         input.setText(""); 
      } 
     }); 
0

代替其中:

input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 

嘗試:

input.setTextAppearance(this, R.style.contact_us_info_header); 
+0

我忘了提及我在片段中使用它,所以調用「this」不適用:( –

相關問題