Я на самом деле пытаюсь создать свое первое приложение для Android, и я только что столкнулся с проблемой, которую не могу понять.
В моем XML есть два представления: одно простое базовое TextView:
<TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
, а другое - пользовательский класс, который я построил:
<com.package.testpanel.Panel
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Код этой «Панели» довольно прост:
public class Panel extends View implements OnTouchListener, OnGestureListener {
TextView tv;
public Panel(Context context, AttributeSet attrs) {
super(context, attrs);
tv = (TextView) findViewById(R.id.tv);
if (tv != null) {
tv.setText("Text changed");
}
}
}
(я, конечно, реализовал весь метод Listeners)
Как вы можете видеть в моем конструкторе, я просто пытаюсьизменить текст TextView из моей панели, и он не будет работать.Если я не поставлю условие «if (tv! = Null)», приложение просто вылетает при запуске.Я попытался поместить этот кусок кода в один из методов слушателя вместо конструктора, и результат тот же: ничего не происходит или происходит сбой без условия if.Если я добавлю точно такой же код в onCreate Деятельности, он отлично работает, но моя цель - изменить текст / свойства TextView на основе прослушивателя касаний и жестов на моей панели.
Я действительноновичок в этом Android SDK, я еще не пытался отладить приложение, но сейчас я просто хотел бы знать, почему этот простой код не работает.
Так что если у кого-то есть идея, почему яя не могу этого сделать или обойти, я был бы очень благодарен!