关于activity_main.xml与fragment_main.xml

十字逆风 2014-03-23 11:16:40
加精
Android新人对于现在的布局文件不太了解啊,求哪位给解答一下,现在的layout下默认有两个布局文件,就是题目中的两个,代码中写的是setContentView(R.layout.activity_main);但我的那些控件内容都是写在fragment_main.xml里的啊,程序还能按预期运行。是怎么办到的。
activity_main.xml的代码:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="leremy.viewtest.MainActivity"
tools:ignore="MergeRootFrame" />

fragment_main.xml的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="leremy.viewtest.MainActivity$PlaceholderFragment" >

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:text="第一个TextView"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00FF00"
android:text="第二个TextView"
/>

</LinearLayout>
...全文
34372 58 打赏 收藏 转发到动态 举报
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
还是有点收获的
今天天很凉 2015-04-02
  • 打赏
  • 举报
回复
你自己写一个fragment来继承系统的frament,activity中,一般都会有几个按钮,然后你点击按钮,就显示你想要显示的fragment,当然其中方法啊,你可以自己百度看那几个方法
cnsdlyl 2015-04-02
  • 打赏
  • 举报
回复
初学者好贴,+关注
forthehero 2014-12-27
  • 打赏
  • 举报
回复
不错,刚开始也是卡在这里了,视频里大多都只有activity_main.xml。
被窝斯烤家 2014-10-22
  • 打赏
  • 举报
回复
受教了,感谢楼主,大家学习的热情蛮高的嘛
悟空悟静 2014-10-11
  • 打赏
  • 举报
回复
很受用 谢谢
图狼飞多萌 2014-09-28
  • 打赏
  • 举报
回复
引用 21 楼 zazeje 的回复:
public static class PlaceholderFragment extends Fragment{ public PlaceholderFragment(){ } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); Button button = (Button)rootView.findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(MainActivity.this,MainsActivity.class); startActivity(intent); } }); return rootView; } } 这里的“Intent intent=new Intent(MainActivity.this,MainsActivity.class);“ 有错。 请问Intent里的第一个参数怎么设??
看到大家的代码,感觉有同学是在极客学院过来的呀,跳转问题的解决方案如下:
public static class PlaceholderFragment extends Fragment {

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_main, container,false);
			TextView welcome = (TextView) rootView.findViewById(R.id.welcomeViewId);
			welcome.setText("北京欢迎你!");
			Button btn = (Button) rootView.findViewById(R.id.toTestActivityBtn);
			btn.setText("GO TO Test");
			btn.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					Intent intent = new Intent(getActivity(), TestActivity.class);
					startActivity(intent);
				}
			});
			return rootView;
		}
	}
shangshaning 2014-09-11
  • 打赏
  • 举报
回复
引用 9 楼 leansmall 的回复:
新版安装SDK文件一开始有两个XML文件,activity_main.xml和fragment_main.xml, 不习惯的可以这样处理: 1.删除fragment_main.xml整个文件 2.对activity_main.xml,删除里面的内容。然后切换到Graphy Layout,放入一个LinearLayout就可以 3.对MainActivity.java,可以删除部分的内容,再把MainActivity extends ActionBarActivity 改为MainActivity extends Activity : 改后如下: package com.zmcorp.weightcalculator; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @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) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } }
第三点的actionBarActivity是3.0以后的才有的,跟这里讨论的问题应该没有关系,在创建AVD时将最低支持的版本在3.0以上就是extends Activity了
梦_影 2014-09-04
  • 打赏
  • 举报
回复
刚接触到4.4都又遇到这样的问题,现在有点懂了,学习了
fireyou 2014-09-02
  • 打赏
  • 举报
回复
路过,学习了,谢谢
飞星点墨 2014-09-02
  • 打赏
  • 举报
回复
感谢各位大神!!!
丹红品茶 2014-08-01
  • 打赏
  • 举报
回复
12楼正解,我也明白了。
伊顺鸣 2014-07-14
  • 打赏
  • 举报
回复
我来的啊。。。。。。。
YIty_Zhang 2014-07-14
  • 打赏
  • 举报
回复
12楼正解~
冇求其 2014-07-14
  • 打赏
  • 举报
回复
其实我运行得时候为什么报 You cannot combine swipe dismissal and the action bar. 好困扰啊
重庆-tan 2014-07-13
  • 打赏
  • 举报
回复
大家都很好学嘛
浪客剑心_Bug 2014-07-13
  • 打赏
  • 举报
回复
http://blog.csdn.net/guolin_blog/article/details/8881711
浪客剑心_Bug 2014-07-13
  • 打赏
  • 举报
回复
activity_main.xml 、fragment.xml文件的关系,希望有所帮助。
  • 打赏
  • 举报
回复
加载更多回复(37)

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧