2011-12-14 30 views
4

私は可視性がGONEに設定されたクリック可能なTextViewとSpinnerを持っています。Spinnerで作業中に不思議なNullPointerExceptionがスローされる

これは私のレイアウトスニペットです:onCreate

<TextView 
    android:id="@+id/strip1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text=" Order Name  ID  Description  Type" 
    android:textSize="15dip" 
    android:textStyle="bold" 
    android:clickable="true" 
    android:gravity="left" 
    android:textColor="#ffffff" 
    android:layout_weight="1" /> 

<Spinner android:id="@+id/sortSpinner" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawSelectorOnTop="true" 
    android:visibility="gone" 
    android:clickable="true" 
    android:prompt="@string/prompt" /> 

私はこれ持っている:アプリケーションがNullPointerExceptionを投げ、私れる

private void spinner_show() { 

    String str = new String[2]; 
    str[0] = "Ascending"; 
    str[1] = "Descending"; 

    Spinner sortSpin = (Spinner)findViewById(R.id.sortSpinner); 
    ArrayAdapter<String> sizeArrayAdapter = 
     new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, str); 
    sizeArrayAdapter.setDropDownViewResource(
     android.R.layout.simple_spinner_dropdown_item); 
    sortSpin.setAdapter(sizeArrayAdapter); 
    sortSpin.setOnItemSelectedListener(
     new AdapterView.OnItemSelectedListener() { 
      public void onItemSelected(AdapterView<?> parent, 
        View v, int pos, long id) { 

     } 

     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 

TextView strip = (TextView)findViewById(R.id.strip1); 
strip.setOnClickListener(new OnClickListener() { 

    public void onClick(View arg0) { 
     spinner_show(); 
    } 

}); 

spinner_show()はこのように見えますが理由を理解できません。

12-14 14:57:31.388: W/dalvikvm(3794): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
12-14 14:57:31.468: E/AndroidRuntime(3794): FATAL EXCEPTION: main 
12-14 14:57:31.468: E/AndroidRuntime(3794): java.lang.NullPointerException 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:376) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:332) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:328) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.AbsListView.obtainView(AbsListView.java:1409) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1216) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.ListView.onMeasure(ListView.java:1127) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.View.measure(View.java:8313) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.View.measure(View.java:8313) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at com.android.internal.widget.WeightedLinearLayout.onMeasure(WeightedLinearLayout.java:60) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.View.measure(View.java:8313) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.View.measure(View.java:8313) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.View.measure(View.java:8313) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.os.Looper.loop(Looper.java:123) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at java.lang.reflect.Method.invoke(Method.java:507) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
12-14 14:57:31.468: E/AndroidRuntime(3794):  at dalvik.system.NativeStart.main(Native Method) 

は、私が何をしないのです。ここで

はlogcatスニペットのですか?

+3

エラーログを投稿してください... – user370305

+1

実行"adb logcat AndroidRuntime:* *:S"をコマンドラインで実行し、アプリを実行します。これは例外情報を表示し、ここに掲示します。クラッシュが発生したときに私が行うことの1つは、クラッシュがなくなるまでコードをコメントアウトすることです。少なくともあなたは持っていて、アイデアはどこを見るか。あなたの投稿から、onCreateまたはspinner_show関数でクラッシュするかどうかは分かりません。 –

+0

スタックトレースを調べ、例外をスローする行番号を見てください。 –

答えて

0

OK、まず第一に、あなたのXMLレイアウトファイル、あなたのXMLで

  <TextView 
    android:id="@+id/strip1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text=" Order Name  ID  Description  Type" 
    android:textSize="15dip" 
    android:textStyle="bold" 
    android:clickable="true" 
    android:gravity="left" 
    android:textColor="#ffffff"/> 

<Spinner android:id="@+id/sortSpinner" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="true" 
     android:visibility="gone" 
     android:clickable="true" 
     android:prompt="@string/prompt"/> 

を呼び出します、)だから、その不要にNullPointerExceptionが発生することはありません、あなたのJavaクラスファイルから今

private void spinner_show() 
    { 

     String[] str=new String[2]; // problem on declaring String array 
     str[0]="Ascending"; 
     str[1]="Descending"; 

     Spinner sortSpin = (Spinner)findViewById(R.id.sortSpinner); 
     ArrayAdapter<String> sizeArrayAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item,str); 
     sizeArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     sortSpin.setAdapter(sizeArrayAdapter); 
     sortSpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) { 

      } 
      public void onNothingSelected(AdapterView<?> parent) { 
      } 
     }); 

     sortSpin.setVisibility(View.VISIBLE); // also you don't Visiable your spinner 
    } 

そして、主なものは、私の日食でその作品が結構です、私はプロンプト文字列を持っていないので、私はちょうどxmlファイルからandroid:prompt="@string/prompt"属性を削除した。..

+0

また、質問に投稿されたコードにはNULLポインタ例外が発生する行が含まれていないと思いますので、彼は投稿全体のアクティビティコードを持っていなければなりません。コードは文字列配列の宣言ですが、NullPointerExceptionは発生しません。 – user370305

+1

確かに。彼が投稿したものはうまくいくはずです私はちょうど彼の 'layout_weight'に全く問題がないことをあなたに知らせたいと思っていました。もし彼が親の「weightSum」のために特別なものを設定していなければ、Spinnerは画面の一番下に表示されます。 –

+0

@Octavian Damiean - はい、彼はコードは正常に動作しているlayout_weightも問題を引き起こしていない、私はちょうどそれを確認するコードを述べた..投稿コードは正常に動作します.. – user370305

0

あなたはスピナを見えるようにしたので、どのようにスピナーを表示できるのですか?

ので、持っていandroid:layout_weight="1"ので、そのカバーすべてのレイアウト、スピナーのためのスペースがありません(これもあなたのTextViewを提出sortSpin.SetVisibility(View.VISIBLE);

+7

本当に_this_はNullPointerException' ?私はそうは思わない。 –

+0

何が問題なのでしょうか... – user1065490

関連する問題