Java Android:IllegalStateException调用DialogFragment
当我只有一个fragment one(横向)的布局时,我已经有了这个功能,但是现在有了附加的纵向版本,我的应用程序崩溃了,在Java Android:IllegalStateException调用DialogFragment,java,android,layout,android-dialogfragment,illegalstateexception,Java,Android,Layout,Android Dialogfragment,Illegalstateexception,当我只有一个fragment one(横向)的布局时,我已经有了这个功能,但是现在有了附加的纵向版本,我的应用程序崩溃了,在开关(v.getId())行中出现了一个非法状态异常。 代码如下: public void onTextViewClick(View v) { DialogFragment newFragment2 = new existingLessonDialog(); DialogFragment newFrag
开关(v.getId())行中出现了一个非法状态异常。
代码如下:
public void onTextViewClick(View v)
{
DialogFragment newFragment2 = new existingLessonDialog();
DialogFragment newFragment = new newLessonDialog();
if (v.getTag().equals("stunde")) newFragment2.show(getSupportFragmentManager(), "missiles");
switch (v.getId())
{
case R.id.uhrzeit1:
index = 0;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit2:
index = 1;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit3:
index = 2;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit4:
index = 3;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit5:
index = 4;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit6:
index = 5;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit7:
index = 6;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit8:
index = 7;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit9:
index = 8;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit10:
index = 9;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
case R.id.uhrzeit11:
index = 10;
newFragment.show(getSupportFragmentManager(), "missiles");
break;
}
}
及
景观布局:
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$fragmentTab1">
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrollView"
android:layout_marginTop="25dp">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tableRow2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="07:45 - 08:30"
android:id="@+id/uhrzeit1"
android:layout_margin="5dp"
android:layout_column="0"
android:lines="2"
android:textSize="25sp"
android:clickable="true"
android:onClick="onTextViewClick"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Deutsch \n in 404"
android:id="@+id/montag1"
android:layout_margin="5dp"
android:layout_column="1"
android:lines="2"
android:layout_weight="20"
android:textSize="25sp"
android:clickable="true"
android:onClick="onTextViewClick"
android:tag="stunde"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/dienstag1"
android:layout_margin="5dp"
android:layout_column="2"
android:lines="2"
android:layout_weight="20"
android:textSize="25sp"
android:clickable="true"
android:onClick="onTextViewClick"
android:tag="stunde"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/mittwoch1"
android:layout_margin="5dp"
android:layout_column="3"
android:lines="2"
android:layout_weight="20"
android:textSize="25sp"
android:clickable="true"
android:onClick="onTextViewClick"
android:tag="stunde"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/donnerstag1"
android:layout_margin="5dp"
android:layout_column="4"
android:lines="2"
android:layout_weight="20"
android:textSize="25sp"
android:clickable="true"
android:onClick="onTextViewClick"
android:tag="stunde"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/freitag1"
android:layout_margin="5dp"
android:layout_column="5"
android:lines="2"
android:layout_weight="20"
android:textSize="25sp"
android:clickable="true"
android:onClick="onTextViewClick"
android:tag="stunde"/>
</TableRow>
这是由于在屏幕方向改变时重复调用oncreate方法来重新创建xml视图。您需要停止对方向更改时oncreate的调用。 您可以通过添加 android:configChanges=“键盘|方向” 在menifest的活动标签中。
祝你好运这是一条可能导致NPE的线路:
if(v.getTag().equals(“stunde”))newFragment2.show(getSupportFragmentManager(),“飞弹”)代码>
第一个文本视图没有标记,而其他所有文本视图都有标记。因此,要么添加一个标记,要么颠倒以下条件的顺序:
if("stunde".equals(v.get())) {
newFragment2.show(getSupportFragmentManager(), "missiles");
}
这是否会更改/显示没有提交()的片段 什么是第299行MainActivity.java?我想您应该首先关心第299行中的NullPointerException,我假设它是v.getId()。你能检查一下,传递的视图是否是你所期望的吗?啊,好的,这是DialogFragment附带的一个方法。我想知道为什么我的不知道。
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$fragmentTab1">
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrollView">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="07:45 -\n08:30"
android:id="@+id/uhrzeit1p"
android:layout_column="0"
android:textIsSelectable="false"
android:textSize="25sp"
android:layout_margin="5dp"
android:lines="2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/actualLesson1"
android:layout_column="1"
android:textIsSelectable="false"
android:textSize="25sp"
android:layout_margin="5dp"
android:lines="2"
android:layout_weight="50"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/actualNote1"
android:layout_column="2"
android:textIsSelectable="false"
android:textSize="25sp"
android:layout_margin="5dp"
android:lines="2"
android:layout_weight="50"/>
</TableRow>
08-15 13:02:45.938 438-453/? I/ActivityManager: Displayed de.nathan.android.droidschool/.MainActivity: +6s548ms
08-15 13:04:10.378 27691-27691/de.nathan.android.droidschool D/AndroidRuntime: Shutting down VM
08-15 13:04:10.388 27691-27691/de.nathan.android.droidschool W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41760700)
08-15 13:04:10.408 27691-27691/de.nathan.android.droidschool E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3633)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.view.View$1.onClick(View.java:3628)
... 11 more
Caused by: java.lang.NullPointerException
at de.nathan.android.droidschool.MainActivity.onTextViewClick(MainActivity.java:299)
... 14 more
08-15 13:04:10.428 438-665/? W/ActivityManager: Force finishing activity de.nathan.android.droidschool/.MainActivity
08-15 13:04:10.948 438-454/? W/ActivityManager: Activity pause timeout for ActivityRecord{41ef1e68 u0 de.nathan.android.droidschool/.MainActivity}
08-15 13:04:21.548 438-454/? W/ActivityManager: Activity destroy timeout for ActivityRecord{41ef1e68 u0 de.nathan.android.droidschool/.MainActivity}
08-15 13:09:10.448 27691-27691/de.nathan.android.droidschool I/Process: Sending signal. PID: 27691 SIG: 9
if("stunde".equals(v.get())) {
newFragment2.show(getSupportFragmentManager(), "missiles");
}
if (v.getTag().equals("stunde"))
newFragment2.show(getSupportFragmentManager(), "missiles")