2011-11-18 78 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