Java 在片段、生命周期回调或接口中首先调用哪个
有人能给我解释一下这个界面的行为吗?我有一个main活动,在其中我从名为ToggleInterface的接口实例化一个对象,ToggleInterface调用方法toggle.onMQTTConnectionPressed;在displaySelectionLayout方法中,情况0:如下所示,在代码2中 在运行时,当没有连接到服务器时,我单击项目编号1,然后单击项目编号0,我会收到下面发布的日志1。如果存在连接,我单击项目编号1,然后单击项目编号0,我将收到下面发布的日志2,但是,log.dTAG,debug消息;永远不要出现 为什么我在案例0中切换到片段:当没有连接时,首先调用@onMQTTConnectionPressed,然后调用onCreateView、onActivityCreated、onStart、onResume,然后再调用****和onMQTTConnectionPressed 及 为什么,当我在案例0中切换到片段时:当存在连接时,首先调用@onMQTTConnectionPressed,然后调用onCreateView、onActivityCreated、onStart、onResume,然后,***再次****、onMQTTConnectionPressed,但是Log.dTAG、debug消息;从未调用,尽管isModeViewVisible为true 注: 代码1: 代码2: isModeViewVisible: 主要活动: 日志1:Java 在片段、生命周期回调或接口中首先调用哪个,java,android,android-fragments,interface,android-lifecycle,Java,Android,Android Fragments,Interface,Android Lifecycle,有人能给我解释一下这个界面的行为吗?我有一个main活动,在其中我从名为ToggleInterface的接口实例化一个对象,ToggleInterface调用方法toggle.onMQTTConnectionPressed;在displaySelectionLayout方法中,情况0:如下所示,在代码2中 在运行时,当没有连接到服务器时,我单击项目编号1,然后单击项目编号0,我会收到下面发布的日志1。如果存在连接,我单击项目编号1,然后单击项目编号0,我将收到下面发布的日志2,但是,log.dT
MQTT_片段何时创建?另外,请添加isModeViewVisible如何工作的代码,说明还不够。@user3249477我添加了所需方法的代码。当用户单击NavigatioDrawer的listView中的第一项时,就会创建MQTT_片段。
`ModeViewVisible`: return the visibility state of the initial view, the one is wilbe returned from `onCretaeView`, or in other words, the `rootview` of the fragment.
@Override
public void onMQTTConnectionPressed() {
// TODO Auto-generated method stub
if ( (this.getMQTTAsynchClient() != null) && (this.getMQTTAsynchClient().isConnected()) ) {
Log.d(TAG, "@onMQTTConnectionPressed(): client Connected");
if (this.rootView == null) {
Log.d(TAG, "@onMQTTConnectionPressed(): rootView = null");
}
if (isModeViewVisible()) {
Log.d(TAG, "@onMQTTConnectionPressed(): ModeViewVisible = true");
hideModeViews();
Log.d(TAG, "debug message");
//showSubscriptionViews();
}
if (isConfigViewVisible()) {
Log.d(TAG, "@onMQTTConnectionPressed(): ConfigViewVisible = true");
}
if (isSubViewVisible()) {
Log.d(TAG, "@onMQTTConnectionPressed(): subViewVisible = true");
}
//showSubscriptionViews();
} else {
Log.d(TAG, "@onMQTTConnectionPressed(): client not Connected");
if (isModeViewVisible()) {
} else if (isConfigViewVisible()) {
hideMQTTConfigViews();
showModeView();
Log.d(TAG, "@onMQTTConnectionPressed(): returned to ModeView from MQTTConfigView.");
}
}
}
private void displaySelectionLayout(int position) {
// TODO Auto-generated method stub
Fragment fragment = null;
boolean flag = false;
switch (position) {
case 0:
//fragment = MQTT_Fragment;
//flag = true;
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_container, MQTT_Fragment).commit();
navDrawerListView.setItemChecked(position, true);
navDrawerListView.setSelection(position);
setTitle(navDrawerOptions[position]);
navDrawerLayout.closeDrawer(navDrawerListView);
toggle.onMQTTConnectionPressed();
break;
case 1:
fragment = Eco_Fragment;
Log.d(TAG, "@displaySelectionLayout: " + this.getNavDrawerArrayList().get(0).isOptionVisibile());
break;
case 2: fragment = Logger_Fragment;
break;
case 3: fragment = Exit_Fragment;
break;
default:
break;
}
private boolean isModeViewVisible() {
// TODO Auto-generated method stub
if ( (rg_ConfigChoice != null) && (rg_ConfigChoice.getVisibility() == View.VISIBLE))
return true;
return false;
}
public class MainActivity extends Activity implements ItemVisibilityPasser {
....
....
private Fragment MQTT_Fragment = new MQTT_Fragment();
private Fragment Eco_Fragment = new Eco_Assistant_Fragment();
private Fragment Logger_Fragment = new Data_Logger_Fragment();
private Fragment Exit_Fragment = new Exit_Fragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
toggle = (ToggleInterface) MQTT_Fragment;
initViews();
if (savedInstanceState == null) {
displaySelectionLayout(0);
}
}
01-22 10:35:37.933: D/MQTT_Fragment(20534): @onMQTTConnectionPressed(): client not Connected
01-22 10:35:37.963: W/MQTT_Fragment(20534): @onCreateView()
01-22 10:35:37.963: W/MQTT_Fragment(20534): @onActivityCreated()
01-22 10:35:37.963: W/MQTT_Fragment(20534): @onStart()
01-22 10:35:37.963: W/MQTT_Fragment(20534): @onResume()
01-22 10:35:37.963: D/MQTT_Fragment(20534): @onResume(): NOT CONNECTED
01-22 10:35:37.963: D/MQTT_Fragment(20534): @onMQTTConnectionPressed(): ModeViewVisible = true
**Log_2**:
01-22 10:37:02.053: D/MQTT_Fragment(20534): @onMQTTConnectionPressed(): client Connected
01-22 10:37:02.083: W/MQTT_Fragment(20534): @onCreateView()
01-22 10:37:02.083: W/MQTT_Fragment(20534): @onActivityCreated()
01-22 10:37:02.093: W/MQTT_Fragment(20534): @onStart()
01-22 10:37:02.093: W/MQTT_Fragment(20534): @onResume()
01-22 10:37:02.093: D/MQTT_Fragment(20534): @onResume(): CONNECTED
01-22 10:37:02.093: D/MQTT_Fragment(20534): @onMQTTConnectionPressed(): ModeViewVisible = true