2015-04-23 41 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(); 
      } 
     } 
    } 
} 

有可能在內部消除功能atnDuom做任何事情來執行功能onActivityResultFinish()密切活動,onActivityResult不工作:)

+1

你能否更好地解釋你想要達到的目標?如果您想在onActivityResult中運行代碼,只需將代碼提取到它自己的函數中即可。然後在atnDuom和onActivityResult中運行該函數。 – Knossos

+0

我不能這樣做,因爲'data.getStringExtra'在函數'atnDuom'中不起作用,因爲該函數沒有'intent data'參數 –

+0

不,但是可以使函數參數成爲Bundle。您需要在atnDuom中設置數據。但它會工作。 – Knossos

回答

1

您正在使用的數據來自意圖,如果你想去onActivityResult從atnDuom你需要創建一個新的意圖,推動需要

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

onActivityResult(REQUEST_CODE, RESULT_OK, newIntent); 
的所有數據