Java 即使调试器显示现有片段,findFragmentByTag仍返回null
我没有主意了。我打电话Java 即使调试器显示现有片段,findFragmentByTag仍返回null,java,android,fragment,tablet,Java,Android,Fragment,Tablet,我没有主意了。我打电话 for(ImageView imageView :((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList) { imageView.setClickable(true); } 但是findFragmentByTag返回null。调试器显示以下内容: 当我更进一步时,程序跳过所有的if并跳转到返回null 这是fragmentma
for(ImageView imageView :((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList)
{
imageView.setClickable(true);
}
但是findFragmentByTag
返回null。调试器显示以下内容:
当我更进一步时,程序跳过所有的if并跳转到返回null
这是fragmentmanager生成的日志输出
04-21 19:12:27.492 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Commit: BackStackEntry{41050da0}
04-21 19:12:27.492 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: mName=null mIndex=-1 mCommitted=false
04-21 19:12:27.492 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Operations:
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Op #0: ADD MapFragment{410504e0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Op #1: ADD ParkFragment{410505e8 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Op #2: HIDE ParkFragment{410505e8 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Run: BackStackEntry{41050da0}
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: add: MapFragment{410504e0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Allocated fragment index MapFragment{410504e0 #0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.499 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: add: ParkFragment{410505e8 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.507 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Allocated fragment index ParkFragment{410505e8 #1 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.507 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: hide: ParkFragment{410505e8 #1 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.507 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto CREATED: MapFragment{410504e0 #0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.507 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto CREATED: ParkFragment{410505e8 #1 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.507 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto ACTIVITY_CREATED: MapFragment{410504e0 #0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.554 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto ACTIVITY_CREATED: ParkFragment{410505e8 #1 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.906 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto STARTED: MapFragment{410504e0 #0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.914 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto STARTED: ParkFragment{410505e8 #1 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.914 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Commit: BackStackEntry{40feb250}
04-21 19:12:27.914 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: mName=null mIndex=-1 mCommitted=false
04-21 19:12:27.914 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Operations:
04-21 19:12:27.921 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Op #0: ADD BluetoothDialogFragment{410503d8 btDialog}
04-21 19:12:27.921 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto RESUMED: MapFragment{410504e0 #0 id=0x7f0c0071 MAPFRAGMENT}
04-21 19:12:27.921 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto RESUMED: ParkFragment{410505e8 #1 id=0x7f0c0071 PARKFRAGMENT}
04-21 19:12:27.921 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Run: BackStackEntry{40feb250}
04-21 19:12:27.921 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: add: BluetoothDialogFragment{410503d8 btDialog}
04-21 19:12:27.921 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Allocated fragment index BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:12:27.929 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto CREATED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:12:27.929 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto ACTIVITY_CREATED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:12:27.968 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto STARTED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:12:28.101 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: moveto RESUMED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.406 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Commit: BackStackEntry{420bc108}
04-21 19:13:30.406 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: mName=null mIndex=-1 mCommitted=false
04-21 19:13:30.406 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Operations:
04-21 19:13:30.421 26499-26499/com.example.paulforster.nxtapp D/FragmentManager: Op #0: REMOVE BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.929 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Run: BackStackEntry{420bc108}
04-21 19:13:30.937 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: remove: BluetoothDialogFragment{410503d8 #2 btDialog} nesting=0
04-21 19:13:30.937 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: movefrom RESUMED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.937 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: movefrom STARTED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.937 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: movefrom STOPPED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.937 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: movefrom ACTIVITY_CREATED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.937 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: movefrom CREATED: BluetoothDialogFragment{410503d8 #2 btDialog}
04-21 19:13:30.945 26499-26499/com.example.paulforster.nxtapp V/FragmentManager: Freeing fragment index BluetoothDialogFragment{410503d8 #2 btDialog}
这是整个main活动。java
:
package com.example.paulforster.nxtapp;
import android.bluetooth.BluetoothAdapter;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;
import de.amr.plt.rcParkingRobot.AndroidHmiPLT;
import parkingRobot.INxtHmi;
//TODO einzeichnen von Fremnden Gegenständen in die Karte
//TODO warum kann ich da nicht parken?
//TODO ParkIcons neben die Linie
public class MainActivity extends AppCompatActivity {
static final int REQUEST_ENABLE_BT = 154;
static AndroidHmiPLT hmiModule = null;
static ArrayAdapter<String> BTArrayAdapter;
static BluetoothDialogFragment btDialog = null;
static Timer refreshTimer;
static TimerTask refreshTimerTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main );
//Kein Bluetooth --> keine App
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(this, "Bluetooth ist auf ihrem Gerät nicht verfügbar! :(",
Toast.LENGTH_LONG).show();
finish();
return;
}
BottomNavigationView bottomNavigationView = (BottomNavigationView)
findViewById(R.id.bottom_navigation);
for(int i=0; i<3; i++) {
bottomNavigationView.getMenu().getItem(i).setChecked(false);
}
bottomNavigationView.setOnNavigationItemSelectedListener(
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.mode_pause:
hmiModule.setMode(INxtHmi.Mode.PAUSE);
break;
case R.id.mode_scout:
hmiModule.setMode(INxtHmi.Mode.SCOUT);
break;
case R.id.mode_park:
hmiModule.setMode(INxtHmi.Mode.PARK_NOW);
Toast toast = Toast.makeText(getApplicationContext(),
"Nächste Parklücke wird angefahren", Toast.LENGTH_LONG);
toast.show();
break;
}
return false;
}
});
if (savedInstanceState == null) {
btDialog = new BluetoothDialogFragment();
MapFragment mapFragment = new MapFragment();
ParkFragment parkFragment = new ParkFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.content, mapFragment, "MAPFRAGMENT");
ft.add(R.id.content, parkFragment, "PARKFRAGMENT");
ft.hide(parkFragment);
ft.commit();
} else {
MapFragment mapFragment = (MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT");
ParkFragment parkFragment = (ParkFragment) getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT");
}
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}
@Override
protected void onStart() {
super.onStart();
Log.e("AConPause", "onStart");
reScheduleTimer(100);
}
@Override
protected void onPause() {
super.onStop();
Log.e("AConPause", "refreshTimer.cancel() happens");
refreshTimer.cancel();
refreshTimer = null;
}
@Override
protected void onResume() {
super.onResume();
Log.e("AConPause", "onResume");
//TODO wenn man gerade Bluetooth eingeschaltet hat, findet er die Liste noch nicht...
if (!btDialog.isAdded()) if(hmiModule == null) btDialog.show(getSupportFragmentManager(), "btDialog");
else if (!hmiModule.isConnected()) btDialog.show(getSupportFragmentManager(), "btDialog");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_ENABLE_BT){
if(resultCode != RESULT_OK){
finish();
}
}
}
public void reScheduleTimer(int duration) {
refreshTimer = new Timer();
refreshTimerTask = new MyTimerTask();
refreshTimer.schedule(refreshTimerTask, 0, duration);
}
private class MyTimerTask extends TimerTask {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
refreshMenu();
}
});
}
}
public void refreshMenu(){
BottomNavigationView bottomNavigationView = (BottomNavigationView)
findViewById(R.id.bottom_navigation);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (hmiModule != null)
if(hmiModule.isConnected()) {
Log.e("Status", "is verbunden");
if(hmiModule.getCurrentStatus() != null) {
Log.e("Status", "is da");
switch (hmiModule.getCurrentStatus()) {
case SCOUT:
bottomNavigationView.getMenu().getItem(0).setChecked(false);
bottomNavigationView.getMenu().getItem(1).setChecked(true);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
for(ImageView imageView : ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList){
imageView.setClickable(true);
}
fragmentTransaction.hide((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
if ((((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler != null){
String data = "MSG DATA";
Message msg = (((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler.obtainMessage(0, data);
msg.sendToTarget();
}
break;
case PARK_NOW:
bottomNavigationView.getMenu().getItem(0).setChecked(false);
bottomNavigationView.getMenu().getItem(1).setChecked(false);
bottomNavigationView.getMenu().getItem(2).setChecked(true);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
for(ImageView imageView : ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList){
imageView.setClickable(true);
}
if ((((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler != null){
String data = "MSG DATA";
Message msg = (((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler.obtainMessage(0, data);
msg.sendToTarget();
}
fragmentTransaction.show((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
/**
if(getSupportFragmentManager().getBackStackEntryCount()==0){
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
ParkFragment parkFragment = new ParkFragment();
ft.add(R.id.content, parkFragment);
ft.addToBackStack(null);
ft.commit();
}*/
break;
case PARK_THIS:
bottomNavigationView.getMenu().getItem(0).setChecked(false);
bottomNavigationView.getMenu().getItem(1).setChecked(false);
bottomNavigationView.getMenu().getItem(2).setChecked(true);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
for(ImageView imageView : ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList){
imageView.setClickable(true);
}
fragmentTransaction.show((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
/**
if(getSupportFragmentManager().getBackStackEntryCount()==0){
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
ParkFragment parkFragment = new ParkFragment();
ft.add(R.id.content, parkFragment);
ft.addToBackStack(null);
ft.commit();
}
*/
break;
case PARKED:
bottomNavigationView.getMenu().getItem(0).setChecked(true);
bottomNavigationView.getMenu().getItem(1).setChecked(false);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setEnabled(false);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(false);
for(ImageView imageView : ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList){
imageView.setClickable(false);
}
fragmentTransaction.hide((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
if ((((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler != null){
String data = "MSG DATA";
Message msg = (((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler.obtainMessage(0, data);
msg.sendToTarget();
}
break;
case INACTIVE:
bottomNavigationView.getMenu().getItem(0).setChecked(true);
bottomNavigationView.getMenu().getItem(1).setChecked(false);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
//TODO die Arraylist mit den ParkIcons muss hier immernoch existieren
for(ImageView imageView : ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList){
imageView.setClickable(true);
}
fragmentTransaction.hide((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
if ((((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler != null){
String data = "MSG DATA";
Message msg = (((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler.obtainMessage(0, data);
msg.sendToTarget();
}
break;
}
}
} else {
for(int i = 0; i<3; i++){
bottomNavigationView.getMenu().getItem(i).setChecked(false);
bottomNavigationView.getMenu().getItem(i).setEnabled(false);
getSupportFragmentManager().popBackStack();
}
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
if (hmiModule != null && hmiModule.connected) {
terminateBluetoothConnection();
}
}
/**
* Terminate the bluetooth connection to NXT
*/
private void terminateBluetoothConnection(){
Toast.makeText(this, "Bluetooth connection was terminated!", Toast.LENGTH_LONG).show();
hmiModule.setMode(INxtHmi.Mode.PAUSE);
hmiModule.setMode(INxtHmi.Mode.DISCONNECT);
hmiModule.disconnect();
while(hmiModule.isConnected()){
//wait until disconnected
}
hmiModule = null;
}
}
package com.example.paulforster.nxtap;
导入android.bluetooth.BluetoothAdapter;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.os.Bundle;
导入android.os.Handler;
导入android.os.Message;
导入android.os.PersistableBundle;
导入android.support.annotation.NonNull;
导入android.support.design.widget.BottomNavigationView;
导入android.support.v4.app.FragmentTransaction;
导入android.support.v7.app.AlertDialog;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
导入android.view.MenuItem;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.Toast;
导入java.util.Timer;
导入java.util.TimerTask;
进口de.amr.plt.rcParkingRobot.AndroidHmiPLT;
进口parkingRobot.INxtHmi;
//托多·埃因泽希宁·冯·弗雷姆登·格根斯坦在卡丁车上
//托多·瓦鲁姆·卡恩我在公园吗?
//托多公园酒店
公共类MainActivity扩展了AppCompatActivity{
静态最终整数请求\启用\ BT=154;
静态AndroidHmiPLT hmiModule=null;
静态阵列适配器BTArrayAdapter;
静态BluetoothDialogFragment btDialog=null;
静态定时器;
静态时间任务刷新时间任务;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Kein蓝牙-->Kein应用程序
BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter==null){
Toast.makeText(这个,“蓝牙是ihrem Gerät nicht verfügbar!:(”,
Toast.LENGTH_LONG).show();
完成();
返回;
}
BottomNavigationView BottomNavigationView=(BottomNavigationView)
findViewById(R.id.bottom_导航);
对于(int i=0;i在提交片段事务(onCreate中的ft.commit())后添加此行)。
调用commit()不会立即执行事务。相反,它会安排它在活动的UI线程(“主”线程)上运行,只要该线程能够这样做。但是,如有必要,您可以从UI线程调用executePendingTransactions(),以立即执行commit()提交的事务。通常不需要这样做,除非事务是其他线程中作业的依赖项
有关executePendingTransactions的详细信息,请参阅。在提交片段事务后添加此行(onCreate中的ft.commit()。
调用commit()不会立即执行事务。相反,它会安排它在活动的UI线程(“主”线程)上运行,只要该线程能够这样做。但是,如有必要,您可以从UI线程调用executePendingTransactions(),以立即执行commit()提交的事务。通常不需要这样做,除非事务是其他线程中作业的依赖项
有关executePendingTransactions的详细信息,请参阅。试试这个
public void refreshMenu(){
BottomNavigationView bottomNavigationView = (BottomNavigationView)
findViewById(R.id.bottom_navigation);
List<ImageView> imageViewList = ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList;
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (hmiModule != null)
if(hmiModule.isConnected()) {
Log.e("Status", "is verbunden");
if(hmiModule.getCurrentStatus() != null) {
Log.e("Status", "is da");
switch (hmiModule.getCurrentStatus()) {
case SCOUT:
bottomNavigationView.getMenu().getItem(0).setChecked(false);
bottomNavigationView.getMenu().getItem(1).setChecked(true);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
for(ImageView imageView :imageViewList){
imageView.setClickable(true);
}
fragmentTransaction.hide((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
if ((((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler != null){
String data = "MSG DATA";
Message msg = (((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler.obtainMessage(0, data);
msg.sendToTarget();
}
break;
public void刷新菜单(){
BottomNavigationView BottomNavigationView=(BottomNavigationView)
findViewById(R.id.bottom_导航);
List imageViewList=((MapFragment)getSupportFragmentManager().findFragmentByTag(“MapFragment”)).imageviewArrayList;
FragmentTransaction FragmentTransaction=getSupportFragmentManager().beginTransaction();
如果(HMI模块!=null)
如果(hmiModule.isConnected()){
Log.e(“状态”,“是冗余的”);
如果(hmiModule.getCurrentStatus()!=null){
日志e(“状态”,“是da”);
开关(hmiModule.getCurrentStatus()){
个案侦察:
bottomNavigationView.getMenu().getItem(0).setChecked(false);
bottomNavigationView.getMenu().getItem(1).setChecked(true);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
对于(ImageView ImageView:imageViewList){
imageView.setClickable(真);
}
fragmentTransaction.hide((ParkFragment)getSupportFragmentManager().findFragmentByTag(“ParkFragment”);
fragmentTransaction.commit();
if((((MapFragment)getSupportFragmentManager().findFragmentByTag(“MapFragment”)).mHandler!=null){
String data=“MSG data”;
Message msg=((MapFragment)getSupportFragmentManager().findFragmentByTag(“MapFragment”)).mHandler.ActainMessage(0,数据);
msg.sendToTarget();
}
打破
我在代码中怀疑的问题是,您与FragmentManager之间的beginTransaction正在查询FindF
public void refreshMenu(){
BottomNavigationView bottomNavigationView = (BottomNavigationView)
findViewById(R.id.bottom_navigation);
List<ImageView> imageViewList = ((MapFragment)getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT")).imageviewArrayList;
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (hmiModule != null)
if(hmiModule.isConnected()) {
Log.e("Status", "is verbunden");
if(hmiModule.getCurrentStatus() != null) {
Log.e("Status", "is da");
switch (hmiModule.getCurrentStatus()) {
case SCOUT:
bottomNavigationView.getMenu().getItem(0).setChecked(false);
bottomNavigationView.getMenu().getItem(1).setChecked(true);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setEnabled(true);
bottomNavigationView.getMenu().getItem(1).setEnabled(true);
bottomNavigationView.getMenu().getItem(2).setEnabled(true);
for(ImageView imageView :imageViewList){
imageView.setClickable(true);
}
fragmentTransaction.hide((ParkFragment)getSupportFragmentManager().findFragmentByTag("PARKFRAGMENT"));
fragmentTransaction.commit();
if ((((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler != null){
String data = "MSG DATA";
Message msg = (((MapFragment) getSupportFragmentManager().findFragmentByTag("MAPFRAGMENT"))).mHandler.obtainMessage(0, data);
msg.sendToTarget();
}
break;