如标题所述,我需要重置一个视图,其中包括
现在,通过按下 "action_reset" 按钮,必须从头开始绘制该 TextView。
我知道所需的代码应该放在“if (id == R.id.action_reset)”之后,但是我已经尝试了通过互联网找到的几种方法,但是它们都没有起作用。
TextView
、ImageView
和其他内容,使其恢复到初始状态。例如,触摸该特定视图后,会播放一个动画,然后它的动画会销毁(在视觉上)该视图。
现在我需要重新绘制它。希望你明白我的意思。此外,我已经使用了https://github.com/tyrantgit/ExplosionField的ExplosionField效果。我已经运行了代码,它可以工作。
以下是代码:
private ExplosionField mExplosionField;
private TextView tv_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_1 = (TextView)findViewById(R.id.mytext_xml);
mExplosionField = ExplosionField.attach2Window(this);
addListener(findViewById(R.id.root));
}
private void addListener(View root) {
// TODO Auto-generated method stub
if (root instanceof ViewGroup) {
ViewGroup parent = (ViewGroup) root;
for (int i = 0; i < parent.getChildCount(); i++) {
addListener(parent.getChildAt(i));
}
} else {
root.setClickable(true);
root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mExplosionField.explode(v);
v.setOnClickListener(null);
}
});
}
}
现在,通过按下 "action_reset" 按钮,必须从头开始绘制该 TextView。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_reset) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
我知道所需的代码应该放在“if (id == R.id.action_reset)”之后,但是我已经尝试了通过互联网找到的几种方法,但是它们都没有起作用。
注意: 请访问https://github.com/tyrantgit/ExplosionField并考虑示例。我需要知道如何通过按按钮重新绘制。