2016-01-17 2 views
-1

У меня есть следующий код:Android выполнение Pause до StartActivityForResult возвращается

@Override 
     public void onClick(View v) { 
      Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
      startActivityForResult(intent, PICK); 

      editText.setText(selectContactNumber); 
      Toast.makeText(getApplicationContext(),selectContactNumber,Toast.LENGTH_LONG).show(); 

     } 

И я хочу editview изменить после выбора контакта. Но он не ждет контакта. Он просто продолжает выполнение, и результат будет нулевым. Есть ли способ приостановить выполнение для выполнения операций?

+0

Переместить вызов 'editText.setText()' в метод 'onActivityResult()' в вызывающей активности. –

ответ

1

Обновить EditText в onActivityResult метод не в onClick один.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == PICK) { 

     if(resultCode == Activity.RESULT_OK){ 
      editText.setText(selectContactNumber); 
      Toast.makeText(getApplicationContext(),selectContactNumber,Toast.LENGTH_LONG).show(); 
     } 
    } 
} 
Смежные вопросы