2014-04-23 81 views
0

我想要下面的代碼razrada.show();被執行後,我按保存在我的AlertDialog,但它顯示並關閉 這是我的代碼警報對話框在不按下的情況下關閉anything_android

AlertDialog.Builder razradaPlacanja = new AlertDialog.Builder(NoviRacun.this); 
      razradaPlacanja.setTitle("Način plaćanja"); 
      LayoutInflater inflater = getLayoutInflater(); 
      View vieww = inflater.inflate(R.layout.razrada, null); 
      razradaPlacanja.setView(vieww); 
final EditText gotovinaEdit = (EditText) vieww.findViewById(R.id.gotovinaEdit); 
final EditText karticeEdit = (EditText) vieww.findViewById(R.id.karticeEdit); 
razradaPlacanja.setPositiveButton("Save", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          try { 
           json.put("TotalCash", gotovinaEdit.getText().toString()); 
           json.put("TotalCreditCards", karticeEdit.getText().toString()); 

          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

         } 
        }); 


      AlertDialog razrada = razradaPlacanja.create(); 
      razrada.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
      razrada.show(); 
      //this i want to execute after pressing Save 
      Racuni racun = getInsertResponse(requestInsert(base64EncodedCredentials, json, httpclient1)); 
      try { 
... 

我不能把 Racuni racun = getInsertResponse(requestInsert(base64EncodedCredentials,JSON,httpclient1)); 裏面的onClick塊導致然後racun是無法訪問(如果宣佈外,需要是最終的,然後我不能asign值)

謝謝你的任何幫助!

回答

0

您可以將要執行到一個單獨的方法的代碼:

public void someAction(JsonType json); 
{ 
    Racuni racun = getInsertResponse(requestInsert(base64EncodedCredentials, json, httpclient1)); 
    // the rest of the code that uses racun, etc. 
} 

,然後從對話框的onClick()方法調用它:

YourActivity.this.someAction(json); 

注意,任何代碼的AlertDialogshow()後立即執行。 show()不阻止流量。

+0

但我將如何獲得變量racun? – sparrkli

+0

你應該在新方法中處理它。你不能這樣做嗎? – Szymon

+1

我只是把整個代碼放在外面的方法中。感謝您的回覆,我會接受答案。 – sparrkli

相關問題