5

TabHost で実行されているアクティビティ (拡張アクティビティ) があります。ユーザー アクションから Android メール クライアントを起動します。電子メール クライアントで [破棄] ボタンをクリックすると、電子メール クライアントは終了しますが、オンスクリーン キーボードは表示されたままになります。

アプリケーションに EditTexts がないので、キーボードが起動したままになる理由がわかりません。アクティビティの終了後にキーボードを削除するにはどうすればよいですか? を何度か繰り返してみました。しかし運がない。何かご意見は?

コードサンプル

package com.test.launchmail;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;

public class myEmail extends Activity
{
    private final String TAG = "** Email **";


    public static void send (Context ctx, String addy, String subject, String body)
    {
        // check to make sure the entry has a phone number
        try
        {
            // use the builtin chooser for users mail app
            Intent sendIntent = new Intent(Intent.ACTION_SEND);
            sendIntent.setType("text/plain");

            sendIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String [] {addy});
            sendIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
            sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
            ctx.startActivity (Intent.createChooser(sendIntent, "Send via which Application?"));

        }
        catch (Exception e) 
        {
            Toast.makeText (ctx, "No activity was found to handle this action",Toast.LENGTH_SHORT).show();
        }
    }


    @Override
    protected void onPostResume()
    {
       // This executes, but keyboard still visible. 
        Log.d ("myEmail", "hiding");
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow (mainApp.tabHost.getCurrentTabView ().getApplicationWindowToken (),imm.HIDE_IMPLICIT_ONLY);

       super.onResume ();
    }
}
4

3 に答える 3

2

なんといらいらするのでしょう。私は一日中検索し、最終的に答えが29の異なる方法のスレッドの下に埋もれていることを発見しました. 誰もが、InputMethodManager のさまざまなバリエーションで成功したと主張しています。それだけの価値があるので、これは私にとってはうまくいきましたClose/hide the Android Soft Keyboard .

いつの日か、これを行うための標準 API 呼び出しがあることを願っています。

于 2012-11-23T19:32:27.857 に答える
0

マニフェスト ファイルに目的のアクティビティ (キーボードを表示しないアクティビティ) に次のように入力してみてください。windowSoftInputMode="stateHidden"

于 2012-11-23T18:27:59.600 に答える