0

以下代码适用于设置为最新 (4..) android 版本的模拟器,但不适用于运行 android 2.3 的真实 Galaxy。我怎样才能让我的应用程序也能在旧版本上运行?

    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"
等。

在java中字符串必须使用
someText.equals(someOtherText)
而不是进行比较
(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 回答