感谢您的帮助。 我正在尝试使用ViewAnimator在屏幕上显示不同的视图。
所以:
我创建了VievAnimator,
我在ViewAnimator中添加了2个视图(在本例中为LinearLayouts),
我设置了setContentView(viewAnimator);
我调用viewAnimator.showNext();
但屏幕上没有任何内容......
public class MainActivity extends Activity {
public DataBaseHelper db;
public EditText enter;
public TextView tv;
public ArrayList<String> listWord;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ViewAnimator viewAnimator = new ViewAnimator(this);
LayoutInflater inflater = (LayoutInflater)this.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout front =(LinearLayout) inflater.inflate(R.layout.front,viewAnimator );
LinearLayout back =(LinearLayout) inflater.inflate(R.layout.back,viewAnimator );
viewAnimator.addView(front);
viewAnimator.addView(back);
setContentView(viewAnimator);
viewAnimator.showNext();
非常感谢任何帮助!
答案 0 :(得分:2)
问题在于以下几行:
LinearLayout front =(LinearLayout) inflater.inflate(R.layout.front,viewAnimator);
LinearLayout back =(LinearLayout) inflater.inflate(R.layout.back,viewAnimator);
因为当您在通货膨胀期间提供viewAnimator
作为根视图时,会返回相同的根视图,并在您的代码中导致ClassCastException
,因为ViewAnimator
无法转换为{ {1}}。
供您参考:
public View inflate(int资源,ViewGroup root)
的参数强> 的
资源要加载的XML布局资源的ID(例如, R.layout.main_page)
root 可选视图,作为生成的层次结构的父级。
的返回强> 的
膨胀层次结构的根视图。如果提供了root, 这是根视图;否则它是膨胀的XML的根源 文件。
只需提供 null 作为根视图,它就可以正常工作。例如:
LinearLayout