开发者

Disable, reenable and the soft keyboard does not appear on touch

Take a look at this example:

public class TestEditSoftKbdActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    findViewById(R.id.editText1).setFocusable(false);
    findViewById(R.id.editText1).setClickable(false);
    findViewById(R.id.editText1).setEnabled(false);

    findViewById(R.id.editText1).setFocusable(true);
    findViewById(R.id.editText1).setClickable(true);
    findViewById(R.id.editText1).setEnabled(true);

    findViewById(R.id.editText1).invalidate();
    findViewById(R.id.editText1).requestLayout();
}

}

After this sequence of calls the edit text view would no longer pop up 开发者_运维百科its soft input method upon being touched :(

Could someone explain what is going wrong here?


If you want to close soft keyboard for your text view follow this link. Here is a solution for you. But you need to define your own TextView to do that. He suggests using;

public class NoImeEditText extends EditText {
    public EditTextEx(Context context, AttributeSet attrs) { 
       super(context, attrs);     
    }      
    @Override      
    public boolean onCheckIsTextEditor() {   
        return false;     
    }        
} 

Hope it works.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜