Android setOnClickListener дает исключение нулевого указателя? - PullRequest
3 голосов
/ 01 ноября 2010

Я написал код для onClick метода для пользовательского диалога вверху другого представленияЭто дает мне nullpointer exception.Я также пытался использовать Layout Inflater.Это дает мне ошибку на ok.setOnclickListener.Что не так в моем коде?

 ImageButton search =(ImageButton) findViewById(R.id.search);
            search.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    Dialog searchDialog = new Dialog(Page.this);

                    /*LayoutInflater inflater = (LayoutInflater) getApplicationContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


                     View layout = inflater.inflate(R.layout.search, null);
                     searchDialog.addContentView(layout, new LayoutParams(
                                LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                     searchDialog.setContentView(layout);*/

                    searchDialog.setContentView(R.layout.search);
                    searchDialog.setTitle("Search Dialog");
                    searchDialog.setCancelable(true);

                    Button ok = (Button)findViewById(R.id.OkButton);
                    ok.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            String searchString = null;
                            EditText searchText = (EditText)findViewById(R.id.searchText);
                            if(searchText.getText()!=null){
                                searchString = searchText.getText().toString();
                            }
                            Log.i("TAG","Search word :"+searchString);

                        }
                    });

                    searchDialog.show();



                }


            });

1 Ответ

7 голосов
/ 01 ноября 2010

Вы ищете кнопку в действии, которая создает диалоговое окно, а не само диалоговое окно.Строка findViewById должна быть:

Button ok = (Button)searchDialog.findViewById(R.id.OkButton);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...