2013-11-26 57 views
3

我使用这个代码检查setOnFocusChangeListener不工作我的EditText重点与否:的Android EDITTEXT:

gelar_pp=(EditText)polis.findViewById(R.id.gelar_pp); 
    gelar_pp.setOnFocusChangeListener(new OnFocusChangeListener() { 
    LinearLayout layout_nama_pp=(LinearLayout)findViewById(R.id.layout_nama_pp); 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(!hasFocus){ 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1); 
      }else { 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1_klik); 
      } 
     } }); 
    ibu_pp=(EditText)polis.findViewById(R.id.ibu_pp); 
    ibu_pp.setOnFocusChangeListener(new OnFocusChangeListener() { 
    LinearLayout layout_nama_pp=(LinearLayout)findViewById(R.id.layout_nama_pp); 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(!hasFocus){ 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1); 
      }else { 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1_klik); 
      } 
     } }); 
    edit_bukti_lain_pp=(EditText)polis.findViewById(R.id.edit_bukti_lain_pp); 
    edit_bukti_lain_pp.setOnFocusChangeListener(new OnFocusChangeListener() { 
    LinearLayout layout_nama_pp=(LinearLayout)findViewById(R.id.layout_nama_pp); 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(!hasFocus){ 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1); 
      }else { 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1_klik); 
      } 
     } }); 

当我进行简单的我的代码,并更改为:

gelar_pp.setOnFocusChangeListener(listener); 
ibu_pp.setOnFocusChangeListener(listener); 
edit_bukti_lain_pp.setOnFocusChangeListener(listener); 
     listener= new OnFocusChangeListener() {  
      LinearLayout layout_nama_pp=(LinearLayout)findViewById(R.id.layout_nama_pp); 
      public void onFocusChange(View v, boolean hasFocus) { 
       if(!hasFocus){ 
        layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1); 
       }else { 
        layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1_klik); 
       } 
      } 
     }; 

我的代码不工作,没有任何改变。我的代码有问题吗?

回答

1

首先初始化监听器,然后设置为EditTexts像

listener= new OnFocusChangeListener() {  
     LinearLayout layout_nama_pp=(LinearLayout)findViewById(R.id.layout_nama_pp); 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(!hasFocus){ 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1); 
      }else { 
       layout_nama_pp.setBackgroundResource(R.drawable.border_corner_baris1_klik); 
      } 
     } 
    }; 
gelar_pp.setOnFocusChangeListener(listener); 
ibu_pp.setOnFocusChangeListener(listener); 
edit_bukti_lain_pp.setOnFocusChangeListener(listener); 

,并设置可聚焦属性true为EditTexts如果以前未设置像...

editText.setFocusable(true); 
+0

谢谢......这是我错过的东西 –

+0

你看起来像你知道如何用户'onFocusChangeListener'你能帮我解决我在这里发布的问题吗? http://stackoverflow.com/questions/38341339/cancelling-event-due-to-no-window-focus-motionevent – ahitt6345

1

尝试这样

edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() { 
@Override 
public void onFocusChange(View v, boolean hasFocus) { 
    if(hasFocus){ 
     Toast.makeText(getApplicationContext(), "on focus", Toast.LENGTH_LONG).show(); 
    }else { 
     Toast.makeText(getApplicationContext(), "lost focus", Toast.LENGTH_LONG).show(); 
    } 
    } 
}); 
4

Add in XML

android:focusable="true" 
android:focusableInTouchMode="true"