Java 当我单击listview项目时,应用程序崩溃,而不是打开另一个活动
我有MainActivity.Java,它有一个按钮。单击按钮时,会打开GradeListActivity.java,其中显示一个ListView(我在这里使用的是片段)。当我单击ListView项目时,我的应用程序崩溃。任何帮助或指导都将不胜感激。谢谢:) My MainActivity.Java: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
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() + "");