В моем основном макете XML у меня есть:
<LinearLayout android:id="@+id/LinearLayout01" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/LinearLayout02">
<Chronometer android:text="@+id/Chronometer01" android:id="@+id/Chronometer01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Chronometer>
<Button android:text="@string/hints" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button01"></Button>
</LinearLayout>
<com.touchpanel.Panel android:id="@+id/SurfaceView01" android:layout_width="wrap_content" android:layout_height="wrap_content">
</com.touchpanel.Panel>
</LinearLayout>
В моем классе Panel я создаю нить для рисования для себя. У меня вопрос, могу ли я получить доступ к кнопке в другом линейном макете, чтобы изменить текст? (Это может произойти совсем немного, текст динамический)
Я попытался объявить кнопку в упражнении, используя этот макет, но не могу получить к ней доступ из класса Panel. Я могу написать функцию, которая принимает текст в качестве параметра для кнопки, но если я вызываю его из класса Panel, он принудительно закрывается. Если я закомментирую "button1.setText (" Текст ");" строка, он прекрасно обрабатывает вызов функции.
Попытка объявить кнопку в классе Panel, например:
private Button b1; //Declared at the beginning of the class
//in constructor of Panel class:
b1 = (Button)findViewById(R.id.Button01);
b1.setText("Hello");
Он объявляет кнопку и прекрасно ее устанавливает. Но когда я пытаюсь использовать строку "b1.setText", она принудительно закрывается.
Есть предложения?