個人想法是在xml文件裏設置Button。再建立一個fragment文件。在java文件中動態加載fragment完成第一張效果。點擊按鈕後在動態加載一張fragment實現setcontent方法改寫內容字符串。點擊返回鍵返回第一張fragment
xml文件javascript
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" 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" tools:context="com.example.administrator.interfacejunmp.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignParentBottom="true"> <Button android:id="@+id/first" android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/ZT1"/> </LinearLayout> </RelativeLayout>
fragment文件java
<FrameLayout 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" tools:context="com.example.administrator.interfacejunmp.MyFragment"> <!-- TODO: Update blank fragment layout --> <TextView android:id="@+id/txt_show" android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/this_is_first_fragment" android:gravity="center" style="@style/ZT3"/> </FrameLayout>
java代碼
activityandroid
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private MyFragment g1; private Button first; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button first = (Button)findViewById(R.id.first); first.setOnClickListener(this); FragmentManager ft = getFragmentManager(); FragmentTransaction fc= ft.beginTransaction(); g1 = new MyFragment(); fc.add(R.id.activity_main,g1); fc.commit(); } @Override public void onClick(View v){ FragmentManager FragmentManager = getFragmentManager(); FragmentTransaction fTransaction = FragmentManager.beginTransaction(); switch(v.getId()){ case R.id.first: if(g1!=null){ g1 = new MyFragment(); g1.setContent("This is second fragment!"); fTransaction.replace(R.id.activity_main,g1); fTransaction.commit(); } } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); g1 = new MyFragment(); transaction.replace(R.id.activity_main,g1); transaction.commit(); } return super.onKeyDown(keyCode, event); } }
fragment代碼ide
public class MyFragment extends Fragment { private String content; public MyFragment() { String s = "This is first fragment!"; content = s; } public void setContent(String content){ this.content = content; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_my, container, false); TextView show = (TextView)view.findViewById(R.id.txt_show); show.setText(content); return view; } }
實現圖:this