Java 如何查找应用程序是否由“调用”;“通过”共享;?
我已将我的Android应用程序添加到“共享通过”窗口。下面的代码被添加到我的代码的Java 如何查找应用程序是否由“调用”;“通过”共享;?,java,android,eclipse,android-intent,android-activity,Java,Android,Eclipse,Android Intent,Android Activity,我已将我的Android应用程序添加到“共享通过”窗口。下面的代码被添加到我的代码的onCreate()方法中 if(getIntent().getAction().equals(Intent.ACTION_SEND)) { String text = getIntent().getStringExtra(Intent.EXTRA_TEXT); textField.setText(text); }
onCreate()
方法中
if(getIntent().getAction().equals(Intent.ACTION_SEND))
{
String text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
textField.setText(text);
}
现在的问题是,如果通过共享调用此应用程序活动,它将正常工作。但是,如果直接调用它(用户打开应用程序->转到该活动),则会导致NullPointerException
崩溃。我在这里得到了NullPointerException
if(getIntent().getAction().equals(Intent.ACTION_SEND))
下面是如何在清单文件中配置此共享
<activity
android:name="com.xx.xx.xx"
android:screenOrientation="portrait"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
这里的问题是什么 要么getIntent()
要么getAction()
正在返回null
您需要检查它。要么
getIntent()
要么getAction()
返回null
你需要检查它。
如果(Intent.ACTION\u SEND.equals(getIntent().getAction()){
?当然,这不能防止getIntent
为null
,只有getAction
如果(Intent.ACTION\u SEND.equals)(getIntent().getAction()){?当然,这不能防止getIntent
为null
,仅适用于getAction
。