点击新闻出现绿色图,点击娱乐出现蓝色图
1.主布局文件
<span style="font-size:18px;"><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:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/bt1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="新闻" />
<Button
android:id="@+id/bt2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="娱乐" />
<Button
android:id="@+id/bt3"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="军事" />
</LinearLayout>
<LinearLayout
android:id="@+id/fg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
</LinearLayout></span>
2.主逻辑代码文件
<span style="font-size:18px;">package com.example.day12_stack;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
Button bt1,bt2,bt3;
@SuppressLint("NewApi")
FragmentManager fm=getFragmentManager();
@SuppressLint("NewApi") @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1=(Button) findViewById(R.id.bt1);
bt2=(Button) findViewById(R.id.bt2);
bt3=(Button) findViewById(R.id.bt3);
bt1.setOnClickListener(this);
bt2.setOnClickListener(this);
bt3.setOnClickListener(this);
FragmentTransaction shiwu = fm.beginTransaction();
shiwu.add(R.id.fg, new Fragment1());
shiwu.commit();
}
@SuppressLint("NewApi")
@Override
public void onClick(View v) {
FragmentTransaction shiwu = fm.beginTransaction();
switch(v.getId())
{
case R.id.bt1:
shiwu.replace(R.id.fg, new Fragment1());
break;
case R.id.bt2:
shiwu.replace(R.id.fg, new Fragment2());
break;
case R.id.bt3:
shiwu.replace(R.id.fg, new Fragment3());
break;
}
//添加回退栈之后点返回按钮回到上个运行的界面,不会直接退出到桌面
shiwu.addToBackStack(null);
shiwu.commit();
}
}
</span>
3.三个Fragment的布局文件:都一样,背景色改改以示区别
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#00ff00"
android:gravity="center">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24sp"
android:text="这是新闻部分"/>
</LinearLayout>
</span>
4.三个Fragment的逻辑代码文件:也类似,注意:红色部分改成对应的布局文件
<span style="font-size:18px;">package com.example.day12_stack;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
@SuppressLint("NewApi") public class Fragment2 extends Fragment{
EditText et;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(<span style="color:#FF0000;">R.layout.fragment2</span>,container,false);
return view;
}
}
</span>