2012-07-09 157 views
2

1.这是添加按钮,当我点击这里我应该出现自定义对话框。在android中的自定义对话框?

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

尝试使用'dialog.findViewById(...)识别textview',然后在这里发布你的logtrace。 – Praveenkumar 2012-07-09 05:34:29

+0

检查此..:http://stackoverflow.com/a/10652886/1168654 – 2012-07-09 05:49:31

回答

1

应该

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

尝试用这种line..hope它会工作。

+2

已答复已发布。 – user370305 2012-07-09 05:43:39

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); 
+0

谢谢你每一个人都得到它。:) – Anwesh 2012-07-09 06:09:54

0

您必须在使视图自定义时膨胀布局。 尝试下面的代码上的click事件:

  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(); 

上述声明在code.Hope剩下的意见,这将帮助你。