你的AndroidManifest.xml中使用的全局主题样式应该是这样的:
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">//使用的是AppTheme主题样式
那么你需要做的是,在 AppTheme中设置 EditText样式,完整的styles.xml如下:
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
@style/NoFocusableEditText
false//没有焦点就不会弹出了
这样整个 App的EditText都设置好了.
/-----------------------由于题主补充了根据题的描述,我更新了如下答案------------------------/
在你的Activity的onCreate函数中添加如下代码即可完全禁用软键盘:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
所以,你想全局生效的话,可以写一个基类,例如:
public abstract class BaseNoIMActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
onCreateStarted(savedInstanceState);
}
protected abstract void onCreateStarted(@Nullable Bundle savedInstanceState);
}
然后任意个Activity都继承它,如果你的项目已经有基类,那么把上面的代码插入到基类中即可,demo示例:
public class TestActivity extends BaseNoIMActivity {//继承基类
@Override
protected void onCreateStarted(@Nullable Bundle savedInstanceState) {
setContentView(R.layout.activity_test);
Log.e("test","TestActivity is started");
}
}