0

我正在向一个对话框添加按钮,该对话框选择我的国家(judet)的一个区域并将其设置为文本视图。但是我遇到了错误,无法弄清楚它们出了什么问题。它指向的代码是 addView() 但我不知道为什么它不应该工作,因为按钮具有它需要的所有属性。

 judet = (RelativeLayout) findViewById(R.id.judet);


            final Dialog selectLocationDialog = new Dialog(this, R.style.DialogTheme);

            judet.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    final String [] judete = {"Alba","Arad","Arges","Bacau","Bihor","Bistrita-Nasaud","Botosani","Brasov","Braila","Buzau","Caras-Severin","Cluj","Constanta","Covasna","Dambovita","Dolj","Galati","Giurgiu","Gorj","Hargita","Hunedoara","Ialomita","Maramures","Mehedinti","Mures","Neamt","Olt","Prahova","Satu-Mare","Salaj","Sibiu","Teleorman","Timis","Tulcea","Valcea","Vaslui","Vrancea","Bucuresti","Ilfov","Calarasi","Iasi","Suceava"};
                    LayoutInflater inflater = HomeScreen.this.getLayoutInflater();

                    View selectRegion = inflater.inflate(R.layout.judet_oras_layout, null);
                    selectLocationDialog.setContentView(selectRegion);
                    WindowManager manager = (WindowManager) getSystemService(Activity.WINDOW_SERVICE);
                    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
                    lp.copyFrom(selectLocationDialog.getWindow().getAttributes());
                    lp.width = manager.getDefaultDisplay().getWidth();
                    lp.height = manager.getDefaultDisplay().getHeight() - manager.getDefaultDisplay().getHeight()/5;
                    selectLocationDialog.getWindow().setAttributes(lp);
                    final TextView judetTV = (TextView) findViewById(R.id.judetTV);

                    LinearLayout view = (LinearLayout) findViewById(R.id.judetOrasLayout);
                    int i=0;
                    while(judete[i] != null)
                    {
                        Button judetB = new Button(HomeScreen.this);
                        judetB.setText(judete[i]);
                        judetB.setTextColor(getResources().getColor(R.color.gray));
                        judetB.setBackgroundColor(getResources().getColor(R.color.grayLighter));
                        judetB.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
                        final int aux = i;
                        judetB.setOnClickListener(new View.OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                // TODO Auto-generated method stub
                                judetTV.setText(judete[aux]);   
                                selectLocationDialog.dismiss();
                            }
                        });
                        view.addView(judetB);
                        i++;
                    }


                    selectLocationDialog.show();
                }
            });

她是应用程序的错误日志:

08-27 07:25:35.971: E/AndroidRuntime(2639): FATAL EXCEPTION: main
08-27 07:25:35.971: E/AndroidRuntime(2639): java.lang.NullPointerException
08-27 07:25:35.971: E/AndroidRuntime(2639):     at com.xcommerce.androidstore.HomeScreen$28.onClick(HomeScreen.java:1502)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at android.view.View.performClick(View.java:4202)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at android.view.View$PerformClick.run(View.java:17340)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at android.os.Handler.handleCallback(Handler.java:725)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at android.os.Looper.loop(Looper.java:137)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at android.app.ActivityThread.main(ActivityThread.java:5039)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at java.lang.reflect.Method.invokeNative(Native Method)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at java.lang.reflect.Method.invoke(Method.java:511)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-27 07:25:35.971: E/AndroidRuntime(2639):     at dalvik.system.NativeStart.main(Native Method)
4

1 回答 1

2

改变

  final TextView judetTV = (TextView) findViewById(R.id.judetTV);

  LinearLayout view = (LinearLayout) findViewById(R.id.judetOrasLayout);

  final TextView judetTV = (TextView)selectLocationDialog.findViewById(R.id.judetTV);

  LinearLayout view = (LinearLayout)selectLocationDialog.findViewById(R.id.judetOrasLayout);
于 2013-08-27T07:43:46.707 回答