Android:为什么屏幕上没有显示任何内容?

时间:2013-05-12 11:53:41

标签: android android-linearlayout viewanimator

感谢您的帮助。 我正在尝试使用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();

非常感谢任何帮助!

1 个答案:

答案 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