EDITAR: solucionado. Respuesta publicada por separado debajo deteclado de Android todavía visibles después del lanzamiento de correo electrónico intención
Estoy iniciando el "seleccionador" de Intent.ACTION_SEND incorporado para que el usuario pueda seleccionar cómo enviar un mensaje desde mi aplicación. Funciona bien, pero si presiono 'Descartar' en el programa de correo electrónico lanzado, vuelve a mi aplicación con el teclado en pantalla aún visible. Intenté cerrarlo con varios encantamientos de imm.hideSoftInputFromWindow (...) pero fue en vano. Alguna idea de cómo solucionar este problema?
Ésta es la forma en que estoy lanzando la 'Selección' y tratar de cerrar el teclado en onActivityResult(). Tenga en cuenta que tabHost es un miembro estático en mi aplicación principal (MainApp) que contiene el objeto tabHost utilizado para crear tabSpecs.
public class L_Secondary extends ListActivity implements myConst
{
@Override
protected void onCreate (Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
setContentView(R.layout.l_people_secondary);
// instantiate the custom array adapter class and pass it some info to build a ListView with.
ListView lv = getListView();
lv.setOnItemClickListener (oicl);
A_secondary da = new A_secondary (this, android.R.layout.simple_list_item_single_choice, mPiecesArray, mPartsArray);
setListAdapter (da);
}
...
// after launching the email client, the keyboard stays visible
// over the Listview. Currently the keyboard gets forced to close
// in getView() of the ArrayAdapter class da, in onCreate() above
public void launchEmail()
{
try
{
// use the builtin chooser for users mail app
Intent sendIntent = new Intent(Intent.ACTION_SEND, Uri.fromParts ("mailto", "[email protected]", null));
sendIntent.setType("text/plain");
sendIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "msg_subject");
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, "msg_body");
startActivityForResult (Intent.createChooser(sendIntent, "Send via which Application?"), 0);
}
catch (Exception e)
{
Toast.makeText (this, "No activity was found to handle this action",Toast.LENGTH_SHORT).show();
}
}
...
}
¿Por qué está funcionando?Necesito entender para tratar de usarlo en mi situación. – Poutrathor