当我尝试从意图中获取额外内容时,我得到一个NullPoiterException。 当我打电话
时,错误就会被抛出int posizione2 =Integer.parseInt((getIntent().getExtras().getString(Intent.EXTRA_TEXT)));
非常感谢任何帮助!
private void aggiungiImm(View arg1, int arg2) {
Intent i=newintent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
i.putExtra(Intent.EXTRA_TEXT, Integer.toString(arg2));
startActivityForResult(i, PICK_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
Uri contactData=null;
if (requestCode==PICK_REQUEST) {
if (resultCode==RESULT_OK) {
contactData=data.getData();
int posizione2 =Integer.parseInt((getIntent().getExtras().getString(Intent.EXTRA_TEXT)));
EDITED: 到目前为止还没有解 可能是问题与这是一个隐含的意图吗?
有关答案 0 :(得分:3)
尝试使用data.getStringExtra(Intent.EXTRA_TEXT)
答案 1 :(得分:2)
而不是
int posizione2 =Integer.parseInt((getIntent().getExtras().getString(Intent.EXTRA_TEXT)));
试试:
Bundle extras = getIntent().getExtras();
if (extras==null) {
Log.e( "", "No extras provided" );
return;
}
String myText = extras.getString(Intent.EXTRA_TEXT);
if (myText==null) {
Log.e( "", "No text provided" );
return;
}
int posizione2 = Integer.parseInt(myText);
应该帮助你看看是什么给了例外......
顺便说一句,您返回的文本(如果该文本是从其他活动中获得的)将在传递给该函数的Intent中可用。所以你应该这样做:
if (data.getString(Intent.EXTRA_TEXT)==null) {
Log.e( "", "No text provided" );
return;
}
int posizione2 = Integer.parseInt(data.getString(Intent.EXTRA_TEXT));
getIntent()
方法将为您提供调用活动已启动的意图。没有意图保存被调用活动的结果。
如果您收到No text provided
消息,则表示您未在计算它的活动中正确返回结果。