2016-09-19 5 views
0

リンク正常に動作しながら、1つのレイアウトアプリケーション内のいくつかのカスタムビューにnullを返します。それは多分ボディのためにあまりにも多くあったため、回答セクションでfindViewById()、それは他の人のための私のレイアウトビューに

layout view

を追加しましたlogcatを https://github.com/google/music-synthesizer-for-android

は私の1つのレイアウトビューに表示され、B:私はちょうど

私はこのプロジェクトからインポートされたすべてのノブウィジェット

... logcatからの誤差を掲載している必要があります電話機で実行したときのut findViewById()は、インポートしたキーボードウィジェットのnullを返します。なぜ私は分からない。 コンストラクタはすべてのウィジェットに対してsuper(context、attrs)を呼び出し、コンテンツビューが設定されます。

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 



    setContentView(R.layout.activity_main); 

    //Our base Synthesizer model 
    //TODO: DSP AND MIDI NOTE ON NOTE OFF 
    synthesizerModel = new SynthesizerModel(); 


    thread = new SynthesizerAudioOutputThread(); 

    thread.setSynthesizerModel(synthesizerModel); 

    //The widget returning null 
    keyboardView = (KeyboardView) findViewById(R.id.kv); 
    //the other widget returning null 
    scrollStripView = (ScrollStripView) findViewById(R.id.ssv); 

    //KNOBS// 

    knobViews = new KnobView[20]; 

    knobViews[0] = (KnobView) findViewById(R.id.mod_0_0); 
    knobViews[1] = (KnobView) findViewById(R.id.mod_0_1); 
    knobViews[2] = (KnobView) findViewById(R.id.mod_0_2); 
    knobViews[3] = (KnobView) findViewById(R.id.mod_0_3); 

    knobViews[4] = (KnobView) findViewById(R.id.mod_1_0); 
    knobViews[5] = (KnobView) findViewById(R.id.mod_1_1); 
    knobViews[6] = (KnobView) findViewById(R.id.mod_1_2); 
    knobViews[7] = (KnobView) findViewById(R.id.mod_1_3); 
    ///Other code all the KnobViews are found 

レイアウトXML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context="com.csun_comp380_15884.group3.synthesizerapp.MainActivity" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <GridLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <SeekBar 
      android:layout_width="200dp" 
      android:layout_height="30dp" 
      android:id="@+id/frequency" 
      android:max="100" 
      android:layout_row="0" 
      android:layout_column="0" /> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="wrap_content" 
      android:layout_height="30dp" 
      android:layout_row="0" 
      android:layout_column="2"> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/_0" 
       android:id="@+id/textView5" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/_1" 
       android:id="@+id/textView6" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/_2" 
       android:id="@+id/textView7" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/_3" 
       android:id="@+id/textView8" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 
     </LinearLayout> 

     <SeekBar 
      android:layout_width="200dp" 
      android:layout_height="30dp" 
      android:id="@+id/master" 
      android:max="100" 
      android:layout_row="1" 
      android:layout_column="0" /> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="30dp" 
      android:layout_height="wrap_content" 
      android:layout_row="1" 
      android:layout_column="1"> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="0" 
       android:id="@+id/textView" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="1" 
       android:id="@+id/textView2" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="2" 
       android:id="@+id/textView3" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="3" 
       android:id="@+id/textView4" 
       android:textAlignment="center" 
       android:textSize="24sp" /> 
     </LinearLayout> 

     <GridLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/gridLayout" 
      android:rowCount="4" 
      android:columnCount="4" 
      android:layout_row="1" 
      android:layout_column="2"> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_0_0" 
       android:layout_row="0" 
       android:layout_column="0" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_1_0" 
       android:layout_row="0" 
       android:layout_column="1" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_2_0" 
       android:layout_row="0" 
       android:layout_column="2" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_3_0" 
       android:layout_row="0" 
       android:layout_column="3" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_0_1" 
       android:layout_row="1" 
       android:layout_column="0" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_1_1" 
       android:layout_row="1" 
       android:layout_column="1" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_2_1" 
       android:layout_row="1" 
       android:layout_column="2" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_3_1" 
       android:layout_row="1" 
       android:layout_column="3" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_0_2" 
       android:layout_row="2" 
       android:layout_column="0" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_1_2" 
       android:layout_row="2" 
       android:layout_column="1" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_2_2" 
       android:layout_row="2" 
       android:layout_column="2" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_3_2" 
       android:layout_row="2" 
       android:layout_column="3" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_0_3" 
       android:layout_row="3" 
       android:layout_column="0" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_1_3" 
       android:layout_row="3" 
       android:layout_column="1" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_2_3" 
       android:layout_row="3" 
       android:layout_column="2" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/mod_3_3" 
       android:layout_row="3" 
       android:layout_column="3" /> 

     </GridLayout> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="120dp" 
      android:layout_height="30dp" 
      android:layout_row="2" 
      android:layout_column="2"> 

     </LinearLayout> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="120dp" 
      android:layout_height="30dp" 
      android:layout_row="3" 
      android:layout_column="2"> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/out_0" /> 
      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/out_1" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/out_2" /> 

      <com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:id="@+id/out_3" /> 

     </LinearLayout> 

    </GridLayout> 

    <com.csun_comp380_15884.group3.synthesizerapp.keyboard.ScrollStripView 
     android:id="@+id/ssv" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/scrollstripheight"/> 

    <com.csun_comp380_15884.group3.synthesizerapp.keyboard.KeyboardView 
     android:id="@+id/kv" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     app:octaves="2" 
     app:first_octave="4"/> 

</LinearLayout> 
+0

使用しているすべてのIDが正しいことを確認しましたか? (kv、ssv、mod_0_0など) – Shadov

+0

findViewByIdはどこでnullPointerExceptionを検出しましたか?あなたのエラーの起源の正確なポイント。 –

+0

はいすべてのIDが正しいです。 nullポインタ例外を発生させる他の関数を呼び出すことはありません。アプリを実行する際にUIに表示されないプログラムをステップ実行した後、それぞれの変数にヌルを返すことがわかります。 – marvin

答えて

0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 

> 

私はそれ人があなたに私の線形レイアウトもそう、私は私の古いXMLを削除NULL戻った私は実現の助けのためにそんなに感謝して貼り付けコピー固定しましたこの行を変更して新しい1つ!以前のレイアウトを削除して貼り付けをコピーしただけでは、なぜか分かりませんでしたが、私は満足しています!

関連する問題