2011-11-18 39 views
3
public class ModalityDialog extends Dialog implements OnClickListener, OnCancelListener { 
EditText capacity ; 
EditText color ; 
Button modal_ok ; 

String Capacity; 
String Color; 

public ModalityDialog(Context context) { 
    super(context); 
    /** It will hide the title */ 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.preferences); 

    capacity = (EditText)findViewById(R.id.capacityInput);  
    color = (EditText)findViewById(R.id.ColorInput);   
    Button modal_ok = (Button)findViewById(R.id.modality_ok); 
    modal_ok.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    if (v == modal_ok){ 

     cancel(); 
    } 
} 

@Override 
public void onCancel(DialogInterface dialog){ 
    if(dialog == this){ 
     Capacity = capacity.getText().toString();   
     Color = color.getText().toString(); 

    } 
} 


} 

我把它叫做OnCancel聽衆如下,其中模式是一個按鈕如何實現機器人

modal.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      ModalityDialog modalDialog = new ModalityDialog(InputInfo.this); 
      modalDialog.show();} 
    }); 

我收到以下錯誤

11-19 03:30:00.733: E/AndroidRuntime(305): FATAL EXCEPTION: main 
11-19 03:30:00.733: E/AndroidRuntime(305): java.lang.NullPointerException 
11-19 03:30:00.733: E/AndroidRuntime(305): at com.domain.ActivityEx.ModalityDialog. <init>(ModalityDialog.java:38) 
11-19 03:30:00.733: E/AndroidRuntime(305): at com.domain.ActivityEx.InputInfo$1.onClick(InputInfo.java:57) 
11-19 03:30:00.733: E/AndroidRuntime(305): at android.view.View.performClick(View.java:2408) 
11-19 03:30:00.733: E/AndroidRuntime(305): at android.view.View$PerformClick.run(View.java:8816) 
11-19 03:30:00.733: E/AndroidRuntime(305): at android.os.Handler.handleCallback(Handler.java:587) 
11-19 03:30:00.733: E/AndroidRuntime(305): at android.os.Handler.dispatchMessage(Handler.java:92) 
11-19 03:30:00.733: E/AndroidRuntime(305): at android.os.Looper.loop(Looper.java:123) 
11-19 03:30:00.733: E/AndroidRuntime(305): at android.app.ActivityThread.main(ActivityThread.java:4627) 
11-19 03:30:00.733: E/AndroidRuntime(305): at java.lang.reflect.Method.invokeNative(Native Method) 
11-19 03:30:00.733: E/AndroidRuntime(305): at java.lang.reflect.Method.invoke(Method.java:521) 
11-19 03:30:00.733: E/AndroidRuntime(305): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
11-19 03:30:00.733: E/AndroidRuntime(305): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
11-19 03:30:00.733: E/AndroidRuntime(305): at dalvik.system.NativeStart.main(Native Method) 

我想要得到的值變量在調用onCancel函數後的容量,顏色等。現在對話框掛起並完成,然後將值放入變量中。任何人都可以建議我該怎麼做?

在此先感謝

+1

是什麼意思 '掛起'?該對話不被解僱? – AedonEtLIRA

+0

「掛起」我的意思是我得到一個錯誤 – user671805

+0

請發佈錯誤。 – prolink007

回答

0

你爲什麼不採取在onclick方法的數值正確調用cancel()之前?

+0

我試過了,但它不起作用。 – user671805

0

試試這個,看看這是你正在嘗試做什麼。

@Override 
     public void onClick(View v) { 
      if (v == modal_ok){ 
       Capacity = capacity.getText().toString();      
       Color = color.getText().toString(); 

       cancel(); 
      } 
     } 

而且,命名與小寫字母開始和capatilizes在每名以下單詞的一個領域公認的慣例。

例如:

String fooBar; 
String theColorRed; 
+0

我試過,但它不起作用。 – user671805

+0

請發佈您所說的錯誤,給我們logcat信息。 – prolink007