2014-04-23 79 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

相关问题