链接到我的布局视图:
在回答部分添加了logcat,因为它对于身体来说太多了,也许我应该刚刚从logcat发布错误...
我从这个项目导入的所有旋钮小部件: https://github.com/google/music-synthesizer-for-android
显示在我的单一布局视图中,但是当我在手机上运行时,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 :(得分: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"
>
我修复了那些伙计们非常感谢你们的帮助我意识到我的线性布局也返回NULL所以我删除了我的旧XML并复制粘贴了一个新的更改此行谢谢!只是删除旧的布局工作和复制粘贴工作,我不知道为什么,但我很高兴!