解决方案 »

  1.   

    得了 没人回答 我自己解决了
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------
      许多初学者接触Android的时候都会发现,当下版本的ADT再创建 android application project的时候,跟许多教材和网上的教程存在差异,比如说res/layout目录下有两个xml文件,而不是教程里面的一个.
      而在这个时候,如果大家按照教程上的方法,在src目录下的MainActivity.java中的
    protected void on Create(Bundle saveInstanceState)
    方法中直接对控件fragment_main.xml中的控件,比如Button,TextView等进行操作的话,大家就会发现,当对控件设置监听器的时候,例如:
    button.setOnClickListener(new OnClickListener()){} 
    程序是不会报错的.可是当大家在虚拟机上或者手机上run的时候.程序就会闪退,在虚拟机上还会弹出报错对话框.
    其实,这是因为大家创建的控件实在fragment_main.xml里面的, 而
    protected void on Create(Bundle saveInstanceState)
    方法是与activity_main.xml关联的,程序运行的时候,找不到控件
    其实新建的android application project已经在MainActivity.java中已经为我们创建了与fragment_main.xml对应的类,就在MainActivity.java类的下面
    public static class PlaceHolderFragment extends Fragment
    在这个类的方法:
    public view onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState )
    中,大家可以看到,方法中已经自动帮你得到了fragment_main的view:
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    这个时候,大家直接在下面对控件进行操作即可, 例如:
    public view onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ){
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
      TextView textView = (TextView)rootView.findViewById(R.id.textView);
      textView.setText(“laugh”);
      Return rootView;
    }
    然后大家就可以看到,在设备上,程序成功run起来了.