解决方案 »
- 求各位大侠帮帮忙,这个是什么意思?android.os.Build.VERSION_CODES.
- android:process 问题
- java.net.SocketException: The operation timed out
- 【在线等】Android程序如何判断手机待机桌面已经有相同的图标了
- 如何在googleMap上添加批注
- 桌面电脑上的红帽Linux 和 嵌入式Linux 的问题
- 请教一下如何切换网络接入点
- 短信发送
- 求助:android/java开发sdk供其它应用调用
- 百度导航无法初始化
- intellij IDEA 13 配置 phonegap 环境
- Android能否直接从MySQL读取数据在客户端显示出来?还是非得通过Web Service(比如PHP/JSP等动态网页)才能展示..??
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
许多初学者接触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起来了.