【发布时间】:2019-02-15 14:38:00
【问题描述】:
单击 ImageView 时应用程序崩溃。
单击图像视图后尝试导航到带有卡片视图的片段。也存在片段重影问题,但该代码现在已被注释。 我也尝试过修复它,但没有成功。
这是我的代码:
mainroute.java:
wiButton.setOnClickListener(new View.OnClickListener() {
@Override
//@SuppressWarnings("ResourceType")
public void onClick(View v) {
FragmentManager mFragmentManager = getActivity().getSupportFragmentManager();//.findFragmentByTag("WifiFragment");
/*if (mFragment == null) {
// wifiFragment = WifiFragment.newInstance();
mFragmentTransaction.add(R.id.WifiLayout, wifiFragment, "WifiFragment");
} else {
wifiFragment = (WifiFragment) mFragment;*/
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
WifiFragment wifiFragment = new WifiFragment();
mFragmentTransaction.add(R.id.WifiLayout, wifiFragment);
mFragmentTransaction.commit();
fICardView.setVisibility(View.VISIBLE);
}
});
logcat 是:
2019-02-15 21:32:08.960 15780-15780/com.felixxiong.android.city E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.felixxiong.android.city, PID: 15780
java.lang.IllegalArgumentException: No view found for id 0x7f07002f (com.penghaoxiong.android.cityexploration:id/WifiLayout) for fragment WifiFragment{6e89def #4 id=0x7f07002f}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1454)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit
...
2019-02-15 21:32:09.774 3275-15841/? E/EntrySyncManager: Cannot determine account name: drop request
2019-02-15 21:32:09.775 3275-15841/? E/NowController: Failed to access data from EntryProvider. ExecutionException.
java.util.concurrent.ExecutionException: com.google.android.apps.gsa.sidekick.main.h.n: Could not complete scheduled request to refresh entries. ClientErrorCode: 3
at com.google.common.util.concurrent.d.eA(SourceFile:85)
at com.google.common.util.concurrent.d.get(SourceFile:23)
at com.google.common.util.concurrent.l.get(SourceFile:2)
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.be.cbB(SourceFile:49)
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.be.cbA(SourceFile:181)
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.bh.run(Unknown Source:2)
at com.google.android.apps.gsa.shared.util.concurrent.at.run(SourceFile:4)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.google.android.apps.gsa.shared.util.concurrent.b.g.run(Unknown Source:4)
at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4)
at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
at com.google.android.apps.gsa.shared.util.concurrent.b.i.run(SourceFile:6)
Caused by: com.google.android.apps.gsa.sidekick.main.h.n: Could not complete scheduled request to refresh entries. ClientErrorCode: 3
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.ar.az(Unknown Source:4)
at com.google.common.util.concurrent.q.ap(SourceFile:7)
at com.google.common.util.concurrent.p.run(SourceFile:32)
at com.google.common.util.concurrent.bt.execute(SourceFile:3)
at com.google.common.util.concurrent.d.b(SourceFile:275)
at com.google.common.util.concurrent.d.addListener(SourceFile:135)
at com.google.common.util.concurrent.p.b(SourceFile:3)
at com.google.android.apps.gsa.shared.util.concurrent.h.a(SourceFile:16)
at com.google.android.apps.gsa.shared.util.concurrent.h.a(SourceFile:13)
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.be.cbB(SourceFile:47)
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.be.cbA(SourceFile:181)
at com.google.android.apps.gsa.staticplugins.nowstream.b.a.bh.run(Unknown Source:2)
at com.google.android.apps.gsa.shared.util.concurrent.at.run(SourceFile:4)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.google.android.apps.gsa.shared.util.concurrent.b.g.run(Unknown Source:4)
at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4)
at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
at com.google.android.apps.gsa.shared.util.concurrent.b.i.run(SourceFile:6)
2019-02-15 21:32:09.777 1814-1827/? E/memtrack: Couldn't load memtrack module
我试过这个帖子:Android Fragment no view found for ID?
我试图找到我的 r.java 苍蝇,我找到了我的 wifilayout id: r.java:
public static final int WifiLayout=0x7f07002f;
此片段的另一个函数中也出现了同样的问题。
我试过getChildFragmentManager():
noButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager mFragmentManager = getChildFragmentManager();
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
NoteFragment noteFragment = new NoteFragment();
mFragmentTransaction.add(R.id.NoteLayout, noteFragment);
mFragmentTransaction.commit();
fICardView.setVisibility(View.VISIBLE);
}
});
非常感谢。
【问题讨论】:
-
那么,您尝试将这些
R.id....Layouts 用作片段的容器布局是什么?请注意,容器布局需要已经存在(例如在托管活动中),它不能是正在添加的片段的一部分。 -
我尝试制作一个 CardView,并动态切换 ImageView 以使 CardView 显示,这个 cardView 在 mainActivity XML 中,并加载片段,并且有重影错误(mainRoute.java-comment 代码)。在旧版本中,点击成功是成功的...
标签: android android-fragments imageview onclicklistener cardview