Java 当我单击listview项目时,应用程序崩溃,而不是打开另一个活动

Java 当我单击listview项目时,应用程序崩溃,而不是打开另一个活动,java,android,xml,android-layout,android-listview,Java,Android,Xml,Android Layout,Android Listview,我有MainActivity.Java,它有一个按钮。单击按钮时,会打开GradeListActivity.java,其中显示一个ListView(我在这里使用的是片段)。当我单击ListView项目时,我的应用程序崩溃。任何帮助或指导都将不胜感激。谢谢:) My MainActivity.Java: public class MainActivity extends Activity { public GradeCollection gc; RatingBar Grade

我有MainActivity.Java,它有一个按钮。单击按钮时,会打开GradeListActivity.java,其中显示一个ListView(我在这里使用的是片段)。当我单击ListView项目时,我的应用程序崩溃。任何帮助或指导都将不胜感激。谢谢:)

My MainActivity.Java:

public class MainActivity extends Activity 
{
    public GradeCollection gc;  
    RatingBar GradeRatingBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        GradeRatingBar = (RatingBar) findViewById(R.id.ratingBar);

        gc = new GradeCollection();
        GradeData gd = new GradeData("Exam", 1, 85, "First Exam");
        GradeData gd15 = new GradeData("Exam", 2, 94, "Second Exam");
        GradeData gd2 = new GradeData("Homework", 1, 100, "Schedule");
        GradeData gd3 = new GradeData("Homework", 2, 100, "Hello goodbye");
        GradeData gd4= new GradeData("Quiz", 1, 0, "Syllabus");
        GradeData gd5 = new GradeData("Quiz", 2, 80, "Chapter 1");
        GradeData gd6 = new GradeData("Quiz", 3, 60, "Chapter 4");
        GradeData gd7 = new GradeData("Lab", 1, 100, "Hello yankees");
        GradeData gd8 = new GradeData("Lab", 2, 100, "Manifest and Different Screens");
        GradeData gd9 = new GradeData("Lab", 3, 100, "Internalization");
        GradeData gd10 = new GradeData("Lab", 4, 100, "Layout and Controls");
        GradeData gd11 = new GradeData("Lab", 5, 100, "Easy Fragment");
        GradeData gd12 = new GradeData("Lab", 6, 100, "Fragment");
        GradeData gd13 = new GradeData("Lab", 7, 100, "Array Adapters");
        GradeData gd14 = new GradeData("Lab", 8, 100, "Handle Implicit Intents");

        gc.AddGrade(gd);
        gc.AddGrade(gd15);
        gc.AddGrade(gd2);
        gc.AddGrade(gd3);
        gc.AddGrade(gd4);
        gc.AddGrade(gd5);
        gc.AddGrade(gd6);
        gc.AddGrade(gd7);
        gc.AddGrade(gd8);
        gc.AddGrade(gd9);
        gc.AddGrade(gd10);
        gc.AddGrade(gd11);
        gc.AddGrade(gd12);
        gc.AddGrade(gd13);
        gc.AddGrade(gd14);


        double numberGrade = gc.CalcGrade();
        String letterGrade = null;

        if (numberGrade >= 93)
        {
            letterGrade = "A";
        }
        else if (numberGrade >= 90 && numberGrade <= 92)
        {
            letterGrade = "A-";
        }
        else if (numberGrade >= 87 && numberGrade <= 89)
        {
            letterGrade = "B+";
        }
        else if (numberGrade >= 83 && numberGrade <= 86)
        {
            letterGrade = "B";
        }
        else if (numberGrade >= 80 && numberGrade <= 82)
        {
            letterGrade = "B-";
        }
        else if (numberGrade >= 77 && numberGrade <= 79)
        {
            letterGrade = "C+";
        }
        else if (numberGrade >= 73 && numberGrade <= 76)
        {
            letterGrade = "C";
        }
        else if (numberGrade >= 70 && numberGrade <= 72)
        {
            letterGrade = "C-";
        }
        else if (numberGrade >= 67 && numberGrade <= 69)
        {
            letterGrade = "D+";
        }
        else if (numberGrade >= 60 && numberGrade <= 66)
        {
            letterGrade = "D";
        }
        else
        {
            letterGrade = "F";
        }

        TextView textView = (TextView) findViewById(R.id.textViewNumericGrade);
        textView.setText(String.valueOf(numberGrade));

        TextView textView2 = (TextView) findViewById(R.id.textViewLetterGrade);
        textView2.setText(letterGrade);

        if(letterGrade == "A" || letterGrade == "A-")
        {
            GradeRatingBar.setRating(4);
        }
        if (letterGrade == "B+" || letterGrade == "B" || letterGrade == "B-")
        {
            GradeRatingBar.setRating(3);
        }
        if (letterGrade == "C+" || letterGrade == "C" || letterGrade == "C-")
        {
            GradeRatingBar.setRating(2);
        }
        if (letterGrade == "D+" || letterGrade == "D")
        {
            GradeRatingBar.setRating(1);
        }
        if (letterGrade == "F")
        {
            GradeRatingBar.setRating(0);
        }

        Button viewGrades = (Button)findViewById(R.id.buttonViewGrade);
        viewGrades.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v)
        {
            Intent intent = new Intent(MainActivity.this, GradeListActivity.class);
            intent.putExtra("OriginalGradeCollectionInstance", gc);

            startActivity(intent);
        }
           });

    }
}
我的ListViewFragment:

public class ListViewFragment extends Fragment{

    public GradeCollection gc = new GradeCollection();
    public ArrayList<String> gcCategoryList;
    public ArrayAdapter<String> gcArrayAdapter;

    @Override
    public View onCreateView(   LayoutInflater inflater,
        ViewGroup container,
        Bundle savedInstanceState) 
    {   

        View v = inflater.inflate(R.layout.list_view_fragment, container, false);



        Activity a = getActivity();

        Intent i = a.getIntent();

        gc = (GradeCollection) i.getExtras().getSerializable("OriginalGradeCollectionInstance");
        gcCategoryList = gc.GetCategoryArrayList();

        gcArrayAdapter = new ArrayAdapter<String>(a, R.layout.listview,  gcCategoryList);



        ListView lv = (ListView) v.findViewById(R.id.listViewPortrait);

        lv.setAdapter(gcArrayAdapter);


        lv.setOnItemClickListener(new OnItemClickListener()
        {
            @Override public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
            { 
                Intent intent = new Intent(ListViewFragment.this.getActivity(), GradeDetailActivity.class);
                intent.putExtra("OriginalGradeCollectionInstance", gc);
                intent.putExtra("position", position);

                startActivity(intent);


            }
        });

        return v;
    }

}
My activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LetterGrade"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textViewStudentName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/student_name" />

    <Button
        android:id="@+id/buttonViewGrade"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ratingBar"
        android:layout_marginTop="125dp"
        android:text="@string/view_grades_button" />

    <RatingBar
        android:id="@+id/ratingBar"
        style="=?android:attr/ratingBarStyleIndicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="true"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textViewStudentName"
        android:layout_marginTop="14dp"
        android:numStars="4"
        android:stepSize="1" />

    <TextView
        android:id="@+id/textViewNumericGrade"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ratingBar"
        android:text="@string/numeric_grade" />
    <TextView
        android:id="@+id/textViewLetterGrade"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textViewNumericGrade"
        android:text="@string/letter_grade" />

</RelativeLayout>

一旦在GradeDetail活动中创建,将内容视图设置为R.layout.grade\u detail\u活动

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grade_detail_activity);

    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    GradeDetailFragment GDF = new GradeDetailFragment();
    ft.add(R.id.ui_container, GDF);
    ft.commit();
}
但是grade_detail_activity.xml没有R.id.ui_容器,它为FrameLayout定义了R.id.ui_细节

<?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" >

    <FrameLayout
        android:id="@+id/ui_detail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    />
</LinearLayout>

试试:


看起来您正在将一个整数传递到
TextView.setText()
,它解析为使用方法签名,而不是Correct。此外,GradeDetailFragment有一个拼写错误的布局:视图v=充气机.inflate(R.layout.grade\u detail\u farment,container,false);我确实将gradeDetailActivity中的id更改为ui\u detail。它仍然给我错误。日志cat错误已更新,我将使用新的日志cat进行编辑。就是这样。谢谢你的帮助:)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LetterGrade"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textViewStudentName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/student_name" />

    <Button
        android:id="@+id/buttonViewGrade"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ratingBar"
        android:layout_marginTop="125dp"
        android:text="@string/view_grades_button" />

    <RatingBar
        android:id="@+id/ratingBar"
        style="=?android:attr/ratingBarStyleIndicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="true"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textViewStudentName"
        android:layout_marginTop="14dp"
        android:numStars="4"
        android:stepSize="1" />

    <TextView
        android:id="@+id/textViewNumericGrade"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ratingBar"
        android:text="@string/numeric_grade" />
    <TextView
        android:id="@+id/textViewLetterGrade"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textViewNumericGrade"
        android:text="@string/letter_grade" />

</RelativeLayout>
<?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" >


     <FrameLayout
        android:id="@+id/ui_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    />

</LinearLayout>
<?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" >

    <ListView
        android:id="@+id/listViewPortrait"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


</TextView>
<?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" >

    <FrameLayout
        android:id="@+id/ui_detail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    />

</LinearLayout>
<?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" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/textViewCategory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="@string/category_text_field_title" />

        <TextView
            android:id="@+id/textViewDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textViewGrade"
            android:layout_marginTop="38dp"
            android:text="@string/description_text_field_title" />

        <TextView
            android:id="@+id/textViewGrade"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textViewNumber"
            android:layout_marginTop="29dp"
            android:text="@string/grade_text_field_title" />

        <TextView
            android:id="@+id/textViewNumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textViewCategory"
            android:layout_marginTop="26dp"
            android:text="@string/number_text_field_title" />

        <EditText
            android:id="@+id/editTextCategory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:editable="false"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/editTextNumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/textViewNumber"
            android:editable="false"
            android:ems="10" />

        <EditText
            android:id="@+id/editTextGrade"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText1"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/textViewGrade"
            android:editable="false"
            android:ems="10" />

        <EditText
            android:id="@+id/editTextDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textViewDescription"
            android:layout_alignBottom="@+id/textViewDescription"
            android:layout_alignParentRight="true"
            android:editable="false"
            android:ems="10" />

    </RelativeLayout>


</LinearLayout>
04-13 22:43:14.805: E/AndroidRuntime(4306): FATAL EXCEPTION: main
04-13 22:43:14.805: E/AndroidRuntime(4306): java.lang.RuntimeException: Unable to start activity ComponentInfo{bcs421.muhammadqumail.hwk.gradeapp.presentation/bcs421.muhammadqumail.hwk.gradeapp.presentation.GradeDetailActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x1
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.os.Looper.loop(Looper.java:137)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.ActivityThread.main(ActivityThread.java:5041)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at java.lang.reflect.Method.invokeNative(Native Method)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at java.lang.reflect.Method.invoke(Method.java:511)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at dalvik.system.NativeStart.main(Native Method)
04-13 22:43:14.805: E/AndroidRuntime(4306): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.content.res.Resources.getText(Resources.java:230)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.widget.TextView.setText(TextView.java:3769)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at bcs421.muhammadqumail.hwk.gradeapp.presentation.GradeDetailFragment.onCreateView(GradeDetailFragment.java:38)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.Fragment.performCreateView(Fragment.java:1695)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.BackStackRecord.run(BackStackRecord.java:682)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.Activity.performStart(Activity.java:5113)
04-13 22:43:14.805: E/AndroidRuntime(4306):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
04-13 22:43:14.805: E/AndroidRuntime(4306):     ... 11 more
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grade_detail_activity);

    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    GradeDetailFragment GDF = new GradeDetailFragment();
    ft.add(R.id.ui_container, GDF);
    ft.commit();
}
<?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" >

    <FrameLayout
        android:id="@+id/ui_detail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    />
</LinearLayout>
    textCategory.setText(gc.GetItem(position).getCategory() + "");
    textNumber.setText(gc.GetItem(position).getNumber() + "");