2

1.これは追加ボタンです。ここをクリックすると、カスタム ダイアログ ボックスが表示されます。

Button add = (Button) findViewById(R.id.addbutton);
// add button listener
add.setOnClickListener(new OnClickListener() {

2.これはカスタム ダイアログ ボックスのコードです。

    // custom dialog
    final Dialog dialog = new Dialog(context);
    dialog.setContentView(R.layout.form);
    dialog.setTitle("Custom dailog");

    TextView uname_TV = (TextView) findViewById(R.id.Uname_TV);
    EditText uname_ET = (EditText) findViewById(R.id.Uname_ET);
    TextView dname_TV = (TextView) findViewById(R.id.Drugname_TV);
    EditText dname_ET = (EditText) findViewById(R.id.Drugname_ET);
    spinner = (Spinner) findViewById(R.id.spinner_id);

    ArrayAdapter < String > adapter = new ArrayAdapter < String > (
    context, android.R.layout.simple_spinner_item,
    noof_times);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setSelection(1);
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView <? > parent,
        View view, int position, long id) {
            String item = parent.getItemAtPosition(position).toString();
            String item1 = parent.getSelectedItem().toString();
            Toast.makeText(getApplicationContext(), "Selected:" + item, Toast.LENGTH_LONG).show();
        }

        @Override
        public void onNothingSelected(AdapterView <? > arg0) {
            // TODO Auto-generated method stub
        }
    });
    dialog.show();

私は得ています

  Null pointer exception at spinner.setAdapter(adapter);

私はそれを取得しませんでした、このエラーからの1つの助け

4

3 に答える 3

3

はい、あなたは得るでしょう

TextView uname_TV = (TextView) findViewById(R.id.Uname_TV);
EditText uname_ET = (EditText) findViewById(R.id.Uname_ET);
TextView dname_TV = (TextView) findViewById(R.id.Drugname_TV);
EditText dname_ET = (EditText) findViewById(R.id.Drugname_ET);
spinner = (Spinner) findViewById(R.id.spinner_id);

これらをに変更します

TextView uname_TV = (TextView) dialog.findViewById(R.id.Uname_TV);
EditText uname_ET = (EditText) dialog.findViewById(R.id.Uname_ET);
TextView dname_TV = (TextView) dialog.findViewById(R.id.Drugname_TV);
EditText dname_ET = (EditText) dialog.findViewById(R.id.Drugname_ET);
spinner = (Spinner) dialog.findViewById(R.id.spinner_id);
于 2012-07-09T05:35:38.587 に答える
1

そのはず

spinner = (Spinner) dialog.findViewById(R.id.spinner_id);

この行で試してみてください..うまくいくことを願っています.

于 2012-07-09T05:39:31.497 に答える
0

ビューをカスタムにする際は、レイアウトをインフレートする必要があります。クリック イベントで以下のコードを試してください。

            LayoutInflater inflater=LayoutInflater.from(YouActivityName.this);
            View view=inflater.inflate(R.layout.form, null);
            AlertDialog.Builder builder=new AlertDialog.Builder(YouActivityName.this);
            builder.setView(view);
            Spinner spinner=(Spinner) view.findViewById(R.id.spinner_id);
            ArrayAdapter<String > adapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,item);
            spinner.setAdapter(adapter);
            builder.create();
            builder.show();

上記の残りのビューをコードで宣言します。これがお役に立てば幸いです。

于 2012-07-09T05:53:49.567 に答える