EDIT: Gelöst. Antwort geschrieben getrennt unterAndroid-Tastatur nach dem Start weiterhin sichtbar E-Mail-Absicht
Ich starte den eingebauten Intent.ACTION_SEND "chooser", also kann der Benutzer wählen, wie man eine Nachricht von meiner Anwendung sendet. Es funktioniert OK, aber wenn ich im gestarteten E-Mail-Programm 'Verwerfen' drücke, kehrt es zu meiner Anwendung mit der noch sichtbaren Bildschirmtastatur zurück. Ich habe versucht, es mit verschiedenen Beschwörungen von imm.hideSoftInputFromWindow (...) zu schließen, aber ohne Erfolg. Irgendwelche Ideen, wie das zu beheben ist?
So starte ich den 'chooser' und versuche, die Tastatur in onActivityResult() zu schließen. Beachten Sie, dass tabHost ein statisches Element in meiner Hauptanwendung (MainApp) ist, das das tabHost-Objekt enthält, das zum Erstellen der tabSpecs verwendet wird.
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();
}
}
...
}
Warum funktioniert das?Ich muss verstehen, um es in meiner Situation zu benutzen. – Poutrathor