Android анимирует текст при вызове setText()
Я хочу, чтобы анимированный текст появлялся и исчезал при изменении расширения TextSwitcher
чтобы определить это один раз, так как у меня есть много TextSwitcher
объекты.
Однако я продолжаю получать нулевой указатель "java.lang.NullPointerException android.widget.TextSwitcher.setText(TextSwitcher.java:80) при выполнении этого:
homeTeamTextView.setText("Text");
Я решил расширить класс TextSwitcher следующим образом:
public class MyTextSwitcher extends TextSwitcher{
public MyTextSwitcher(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
setInAnimation(context,R.anim.fade_in);
setOutAnimation(context,R.anim.fade_out);
}}
Деятельность
private MyTextSwitcher homeTeamTextView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
homeTeamTextView = (MyTextSwitcher) findViewById(R.id.hometeam);
awayScoreTextView = (TextView) findViewById(R.id.awayteamscore);
homeScoreTextView = (TextView) findViewById(R.id.hometeamscore);
gameStatusTextView = (TextView) findViewById(R.id.gamestatus);
gameClockTextView = (TextView) findViewById(R.id.gameclock);
gameStartTextView = (TextView) findViewById(R.id.gamestart);
gameClockSectionTextView = (TextView) findViewById(R.id.gameclocksection);
LoadDataAsyncTask loadDataTask = new LoadDataAsyncTask();
loadDataTask.execute();
}
Планировка:
<com.MyTextSwitcher
android:id="@+id/hometeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
1 ответ
Похоже, что TextSwitcher является обычным ViewSwitcher, который может содержать только TextViews. Когда вы вызываете setText(), он пытается получить следующий вид. Вы можете найти его в источнике: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/TextSwitcher.java, но это ноль. Я думаю, что вы должны добавить textView внутри вашего TextSwitcher (или даже два textView для правильно работающей анимации).