0

次のコードは、最近 (4..) の Android バージョンに設定されたエミュレーターでは機能しますが、Android 2.3 を実行している実際の G​​alaxy I では機能しません。アプリを古いバージョンでも動作させるにはどうすればよいですか?

    Intent callingIntent = getIntent();
    //check if it was an Edit/GetContent action
            if (callingIntent.getAction() == Intent.ACTION_EDIT){

                EditText editSubject = (EditText) findViewById(R.id.editText1);
                EditText editBody = (EditText) findViewById(R.id.editText2);

                //get data:

                String body = callingIntent.getStringExtra("body");
                String subject = callingIntent.getStringExtra("subject");
                //show data:
                editSubject.setText(subject);
                editBody.setText(body);

            }
4

2 に答える 2

1

それは本当に簡単なことですが、見つけるのが難しい場合があります... 同じことがありました.

インテント アクションは実際には文字列です。例:
Intent.ACTION_EDIT = "android.intent.action.EDIT"
Intent.ACTION_VIEW = "android.intent.action.VIEW"
など。


someText.equals(someOtherText)
Java では、文字列は使用して比較する必要があります。
(someText == someOtherText)

(実際には他のオブジェクトにも同じことが言えます。== 演算子はプリミティブ (int、float、bool など) に対してのみ機能します。)

== 演算子は、文字列に対して機能する場合と機能しない場合があるため、見つけるのが非常に厄介なバグです...

于 2013-10-28T17:59:56.813 に答える
0

私の最初の推測では、コードのある時点で、Android 2.3 API レベル (ほとんどの場合 API レベル 10) でサポートされていないメソッドを使用していますが、投稿したコードは適切に見えます。さらに、そのシナリオではプログラムがクラッシュする可能性が高く、問題を見つけるのに役立つエラー ログが表示されます。

2.3 での実行時にインテント エクストラを取得した後、「本文」と「件名」の文字列にはどのような情報が含まれますか? おそらく、インテントのエクストラを設定しているコードも投稿しますか?

于 2013-10-28T17:59:05.857 に答える