调用setText()时Android动画文本

时间:2014-04-23 12:14:07

标签: android android-animation textview android-textattributes

我希望动画文字在更改时淡入淡出我正在扩展TextSwitcher以便定义此属性,因为我有很多TextSwitcher个对象。

但是我继续得到一个Null指针“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 个答案:

答案 0 :(得分:0)

看起来TextSwitcher是常见的ViewSwitcher,它只能包含TextViews。当你调用setText()时,它会尝试获取下一个视图。你可以在源代码中找到它:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/TextSwitcher.java,但它是null。我认为你必须在TextSwitcher中添加textView(甚至两个textView才能正常运行动画)。