FragmentTest应用程序无法运行,我的应用程序不断崩溃

时间:2014-05-03 11:09:00

标签: java android xml android-fragments

当我尝试运行我的程序时,我的应用程序崩溃。这是我正在使用的代码。

MainActivity.java

import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);
}

public void selectFrag(View view) {
     Fragment fr;

     if(view == findViewById(R.id.button2)) {
         fr = new FragmentTwo();

     }else {
         fr = new FragmentOne();
     }

     FragmentManager fm = getFragmentManager();
     FragmentTransaction fragmentTransaction = fm.beginTransaction();
     fragmentTransaction.replace(R.id.fragment_place, fr);
     fragmentTransaction.commit();

}

}

FragmentOne.java

import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
  ViewGroup container, Bundle savedInstanceState) {

   //Inflate the layout for this fragment

  return inflater.inflate(
          R.layout.fragment_one, container, false);
}
}

FragmentTwo.java

import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
  ViewGroup container, Bundle savedInstanceState) {

   //Inflate the layout for this fragment

  return inflater.inflate(
          R.layout.fragment_one, container, false);
}
}

main_activity.xml

<?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" >
<Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Fragment No.1"
    android:onClick="selectFrag" />

 <Button
     android:id="@+id/button2"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:onClick="selectFrag"
     android:text="Fragment No.2" /> 

 <fragment
    android:name="com.javacodegeeks.android.fragmentstest.FragmentOne"
    android:id="@+id/fragment_place"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

fragment_one.xml

<?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="#00ffff">

   <TextView
       android:id="@+id/textView1"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_weight="1"
       android:text="This is fragment No.1"
       android:textStyle="bold" />

</LinearLayout>

fragment_two.xml也与fragment_one.xml相同,但在TextView中我打印的是片段2而不是片段1。

在我的AndroidManifest.xml文件中,我使用的min sdk版本是11.请大家知道我出错了并纠正了我。

我从this link

复制了代码

1 个答案:

答案 0 :(得分:0)

由于您的包名称为package name is com.example.fragmentstest,请更改此行:

android:name="com.javacodegeeks.android.fragmentstest.FragmentOne"

android:name="com.example.fragmentstest.FragmentOne"
main_activity.xml

中的