Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onActivityResult()调用之前执行的MainActivity代码_Java_Android - Fatal编程技术网

Java onActivityResult()调用之前执行的MainActivity代码

Java onActivityResult()调用之前执行的MainActivity代码,java,android,Java,Android,我正在尝试呼叫其他活动,以从主要活动中获取联系人号码的结果。 一旦onActivityresult将该值分配给contactNo,则发送sms消息 但是,我的问题是在onActivityResult完成之前调用getContactselect()方法之后的smsmanager代码。由于此原因,联系人号码被分配为空 Main Activity code: public void onItemClick(AdapterView<?> a, View v, int position, l

我正在尝试呼叫其他活动,以从主要活动中获取联系人号码的结果。 一旦onActivityresult将该值分配给contactNo,则发送sms消息

但是,我的问题是在onActivityResult完成之前调用getContactselect()方法之后的smsmanager代码。由于此原因,联系人号码被分配为空

Main Activity code:

public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
Object o = lv1.getItemAtPosition(position);
ItemDetails obj_itemDetails = (ItemDetails)o;

...
...                                     
**getContactselect();**
**smsManager.sendTextMessage(contactNo, null, obj_itemDetails.getMessage(), null, null);**
}
...

public void getContactselect() {        
Intent ourIntent = new Intent(BreakOut.this,ContactsSelector.class);    
startActivityForResult(ourIntent,CONTACT_SELECT);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data){
        switch(requestCode) {
        case CONTACT_SELECT: 
             if (resultCode == RESULT_OK) {
                 contactNo = data.getStringExtra("ContactDetails");
                 Toast.makeText(this, "You have chosen the contact: " + " " + contactNo, Toast.LENGTH_LONG).show();
                 break;     
             }
        }

}  
主要活动代码:
public void onItemClick(适配器视图a、视图v、内部位置、长id){
对象o=lv1.getItemAtPosition(位置);
ItemDetails obj_ItemDetails=(ItemDetails)o;
...
...                                     
**getContactselect()**
**smsManager.sendTextMessage(contactNo,null,obj_itemDetails.getMessage(),null,null)**
}
...
public void getContactselect(){
Intent-ourIntent=新的Intent(BreakOut.this,contacts-selector.class);
startActivityForResult(我们的内容、联系方式和选择);
}
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
开关(请求代码){
案例联系人选择:
if(resultCode==RESULT\u OK){
contactNo=data.getStringExtra(“ContactDetails”);
Toast.makeText(这是“您已选择联系人:”+“”+contactNo,Toast.LENGTH_LONG).show();
打破
}
}
}  

意图是异步启动的。这就是为什么要使用onActivityResult()方法。无论您希望在您调用的活动返回之后做什么,都必须在那里完成

意图是异步启动的。这就是为什么要使用onActivityResult()方法。无论您希望在您调用的活动返回之后做什么,都必须在那里完成