2012-02-28 8 views
0

で不正な状態の例外を取得こんにちは、私は、それはここではIllegalStateExceptionはスピナー

を投げるコード

final Dialog dialog= new Dialog(SamplepaintActivity.this); 
    dialog.setContentView(R.layout.customhourdialog); 

    Button OK,Cancel; 

    OK = (Button)findViewById(R.id.OkButton); 
    Cancel = (Button)findViewById(R.id.CancelButton); 

    ArrayAdapter <String> spinAdapter = 
       new ArrayAdapter <String> (this, android.R.layout.simple_spinner_item); 
      spinAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinAdapter.add("Sample1"); 
      spinAdapter.add("Sample2"); 
      Spinner spinner = (Spinner)findViewById(R.id.spinner1); 
    spinner.setAdapter(spinAdapter); 

    Cancel.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 



       dialog.dismiss(); 

     }}); 
    OK.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 



       dialog.dismiss(); 

     }}); 
    dialog.show(); 

あるとして私はそうすることはできませんよ移入するarrayadapter.but使用して文字列を持つスピナーをしようとしています私はこれが私のcustomdialog

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
     android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <Button android:layout_height="wrap_content" android:id="@+id/button1" android:layout_width="wrap_content" android:text="Begin" android:layout_alignBaseline="@+id/textView1" android:layout_alignBottom="@+id/textView1" android:layout_toRightOf="@+id/textView1" android:layout_marginLeft="35dp"></Button> 
    <Button android:layout_height="wrap_content" android:id="@+id/button2" android:layout_width="wrap_content" android:text="End" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_toRightOf="@+id/button1" android:layout_marginLeft="56dp"></Button> 
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Subject" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/textView2" android:layout_below="@+id/button1" android:layout_alignParentLeft="true" android:layout_marginTop="39dp"></TextView> 
<Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/spinner1" android:layout_alignTop="@+id/textView2" android:layout_alignLeft="@+id/button1" android:layout_alignRight="@+id/button2"> 

</Spinner> 

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Time" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/textView1" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_marginTop="20dp"></TextView> 
<Button android:layout_height="wrap_content" android:id="@+id/OkButton" android:layout_width="150dp" android:text="OK" android:layout_below="@+id/spinner1" android:layout_alignParentLeft="true" android:layout_marginTop="53dp"></Button> 
<Button android:layout_height="wrap_content" android:text="Cancel" android:layout_width="150dp" android:id="@+id/CancelButton" android:layout_alignBaseline="@+id/OkButton" android:layout_alignBottom="@+id/OkButton" android:layout_alignParentRight="true"></Button> 
のxmlファイルであるスピナー

用のアダプタを設定する際に例外がラインにスローされます

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

変更アダプタにspinAdapterとあなたが行くために良いことがあります:

+2

** CharSequence **の代わりに** String ** – waqaslam

+0

を試すことができますか?それはバックグラウンドスレッドではないですか? –

+0

@Waqas私はそれが動作しないことを試みた。 –

答えて

1

私はこの問題は、この行であると思います。以下を参照:

を更新
spinAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

あなたのダイアログ構築プロセスを修正する必要があります。下記を参照してください:

AlertDialog.Builder bldr = new AlertDialog.Builder(SamplepaintActivity.this); 
    LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflator.inflate(R.layout.customhourdialog, null); 

    bldr.setView(view); 

    Button OK,Cancel; 

    OK = (Button)view.findViewById(R.id.OkButton); 
    Cancel = (Button)view.findViewById(R.id.CancelButton); 
    Spinner spinner = (Spinner)view.findViewById(R.id.spinner1); 
    ArrayAdapter <String> spinAdapter = new ArrayAdapter <String> (this, android.R.layout.simple_spinner_item); 
    spinAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinAdapter.add("Sample1"); 
    spinAdapter.add("Sample2"); 
    spinner.setAdapter(spinAdapter); 

    bldr.show(); 
+0

これはnullpointerexceptionをスローします –

+0

コードに何か間違っていなければなりません。 – waqaslam

+0

私は質問を更新しました –

0

最初にスピナーを定義し、次にアダプターを定義します。その後、エラーが発生した場所を確認します。私はエラーが発生しないと思います。