В моем приложении Android я хочу изменить метод ввода. Поэтому я начинаю новый Activity
, который показывает настройки языка на устройстве. Тогда пользователь может его изменить. Однако тогда я хочу знать, что если пользователь изменил его. Поэтому я написал для этого функцию. Мой код до сих пор есть ...Как узнать, когда действие завершено в Android?
Intent enableIME = new Intent(android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS);
startActivityForResult(enableIME,0);
if(isInputMethodEnabled()){
activateshadow.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_pressed));
activateshadow.setText("Deactivate Shadow");
prefs.edit().putBoolean("Activate", false).commit();
}else{
Toast.makeText(MainActivity.this,"You haven't change the input method to simpleIME.In order to activate you must change it.",Toast.LENGTH_SHORT).show();
}
мой является inputMethodEnabled функция ....
public boolean isInputMethodEnabled() {
boolean isIME ;
String id = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
String [] name = id.split("/.");
// Toast.makeText(MainActivity.this,"s:"+name[1]+":s",Toast.LENGTH_SHORT).show();
if(name[1].contains("SimpleIME")){
isIME = true ;
}else{
isIME = false;
}
// Toast.makeText(MainActivity.this,"Returning..."+isIME,Toast.LENGTH_SHORT).show();
return isIME;
}
if(isInputMethodEnabled())
всегда терпит неудачу, потому что, когда new intent(settings)
открывается, и это займет некоторое время, чтобы изменить метод ввода simpleIME
. Как решить эту проблему?
Ваш вопрос название является простым, тело - нет. Пожалуйста, начните второй вопрос, чтобы избежать путаницы здесь. – John