我现在有以下内容;
setupHideKeyboard( findViewById( R.id.login_layout ), this );
public void setupHideKeyboard( final View view, final Activity activity ) {
if ( !( view instanceof EditText ) ) {
view.setOnTouchListener( new View.OnTouchListener() {
// crashes on the above line
public boolean onTouch( View v, MotionEvent event ) {
hideSoftKeyboard( activity );
view.setFocusableInTouchMode( true );
view.requestFocus();
return false;
}
});
}
if ( view instanceof ViewGroup ) {
for ( int childView = 0; childView < ( ( ViewGroup) view ).getChildCount(); childView++ ) {
View innerView = ( ( ViewGroup ) view ).getChildAt( childView );
setupHideKeyboard( innerView, activity );
}
}
用于设置触摸侦听器以在未按下edittext时隐藏键盘,这在我的HTC One M7上运行良好,但在我的Samsung Galaxy Tab S 10.5上崩溃。
视图由于某种原因在选项卡上为空,但在m7上很好。 有什么明显的想法吗?
就好像它找不到R.id.login_layout
大的xml与小的xml有不同的名字?
答案 0 :(得分:0)
在布局和layout-large / layout-xlarge文件夹中可能存在相同的布局文件。但是login_layout仅在布局文件夹文件中定义。因为平板电脑会从layout-large / layout-xlarge中获取xml,所以通胀没有问题,但它无法从该布局文件中获取login_layout视图。因此,你正在崩溃。