2015-04-23 2 views
0

У меня есть кнопка, которая имеет атрибут android:onClick="atnDuom". Существует что функцияAndroid. при нажатии кнопки перейдите к функции результата onActivity. ВОЗМОЖНО?

public void atnDuom(View view) 
{ 
    finish(); 
} 

и есть onActivityResult функция в одной и той же деятельности.

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

    if (requestCode == 1) { 
     if (resultCode == RESULT_OK) { 

      DOP = new DatabaseOperations(ctx); 
      Intent returnIntent = new Intent(); 

      user_name = data.getStringExtra("tarpVard"); 
      user_lastname = data.getStringExtra("tarpPav"); 
      institucijos_pavadinimas = data.getStringExtra("tarpInst"); 
      padalinio_pavadinimas = data.getStringExtra("tarpPad"); 
      pareigos = data.getStringExtra("tarpPar"); 
      mob_tel = data.getStringExtra("tarpMob"); 
      el_pastas = data.getStringExtra("tarpEl"); 

      setResult(RESULT_OK,returnIntent); 
      DOP = new DatabaseOperations(ctx); 

      if(newVard.equals("")||newPav.equals("")||newInst.equals("")||newPad.equals("")||newPar.equals("")||newMob.equals("")||newEl.equals("")) 
      { 
       Toast.makeText(getBaseContext(), R.string.prashome, Toast.LENGTH_LONG).show(); 
      } 
      else 
      { 

       DOP.updateUserInfo(DOP, user_name, user_lastname, institucijos_pavadinimas, padalinio_pavadinimas, pareigos, mob_tel, el_pastas, newVard, newPav, newInst, newPad, newPar, newMob, newEl); 
       Toast.makeText(getBaseContext(), "Duomenys atnaujinti", Toast.LENGTH_LONG).show(); 
       finish(); 
      } 
     } 
    } 
} 

Можно выполнить функцию onActivityResult Whithout делать что-либо в atnDuom функции? Finish() близко активность и onActivityResult не работает :)

+1

Не могли бы вы лучше объяснить, чего вы пытаетесь достичь? Если вы хотите запустить код в onActivityResult, просто извлеките код в свою собственную функцию. Затем запустите эту функцию в atnDuom и onActivityResult. – Knossos

+0

Я не могу этого сделать, потому что 'data.getStringExtra' не работает в функции' atnDuom', потому что эта функция не имеет параметра 'target data' –

+0

Нет, но вы можете сделать параметр функции a Bundle. Вам нужно будет установить данные в atnDuom. Но это сработает. – Knossos

ответ

1

Вы используете данные намерения, если вы хотите, чтобы перейти к onActivityResult от atnDuom вам нужно будет создать новый Intent и нажать все данные, необходимые

Intent newIntent = new Intent(); 
newIntent.putExtras(...); 

onActivityResult(REQUEST_CODE, RESULT_OK, newIntent); 
Смежные вопросы