あなたのあなたは、このインターフェースの因数分解を使用したい場合はActivity
、OnFocusChangeListener()
を実装 例持っている:あなたのOnCreate
あなたはたとえば、リスナーを追加することができて
public class Shops extends AppCompatActivity implements View.OnFocusChangeListener{
:
editTextReaserch.setOnFocusChangeListener(this);
editTextMyWords.setOnFocusChangeListener(this);
editTextPhone.setOnFocusChangeListener(this);
をアンドロイドスタジオは、インターフェイスからメソッドを追加するように求め、それを受け入れます... 私はTは次のようになります:
@Override
public void onFocusChange(View v, boolean hasFocus) {
// todo your code here...
}
、あなたは因数分解のコードを持っているとして、あなたはちょうどそれを行う必要があるでしょう:
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
editTextReaserch.setText("");
editTextMyWords.setText("");
editTextPhone.setText("");
}
if (!hasFocus){
editTextReaserch.setText("BlaBlaBla");
editTextMyWords.setText(" One Two Tree!");
editTextPhone.setText("\"your phone here:\"");
}
}
何かをあなたが!hasFocus
のコードはの行動のためでありますトリックをする必要がある、フォーカスを失うアイテム!しかし、そのような状態では、フォーカスの変更によってユーザーのエントリが上書きされる可能性があることに注意してください。
1 - しかし、あなたのエディットテキストがリストビューにある場合、すべてのキーダウンボックスが失うと、フォーカスを得ることになりますことは注目に値します。現在フォーカスされているボックスを追跡するには、このソリューションを参照してください:http://stackoverflow.com/questions/9527067/android-edittext-in-listview-loses-focus-on-calling-notifydatachanged – bsautner
41 upvotesは、基本的に答えています"hasFocus 'の値を読んでください。真実は、これがeditTextにフォーカスを失わせることは本当に難しく、未解決の疑問がたくさんあることです。 –
表示するコードはどこに追加しますか?私はそれを "onCreate"に置くとアプリがクラッシュする – Jona