gpt4 book ai didi

android - 使用 FragmentActivity 时,onCreate 中的任何内容都不能为 "setChecked"。

转载 作者:行者123 更新时间:2023-11-30 03:25:04 25 4
gpt4 key购买 nike

在主 Activity 中使用可滑动的 fragment 。

我无法弄清楚如何进行查找文件的调用,然后调用 Android Switch 上的 setChecked(boolean) 方法,cb1,根据文件是否存在。

我目前已将其设置为当应用程序启动时,会显示一个弹出窗口并且用户单击“确定”,这会触发对文件的检查并设置检查的操作。

澄清一下,我调用的所有操作 do 都按预期工作,除非它在 ​​onCreate() 中。

如果它在 onCreate() 中,logcat 将在第一个 setChecked(boolean) 的任何一行上显示由 DeviceSetup.setup 引起的 NullPointerException > 位于。

MainActivity#onCreate():

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ChangeTheme.userchoice(this);
DeviceState.startup(this);
setContentView(R.layout.activity_main);

// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setOffscreenPageLimit(3);
mViewPager.setCurrentItem(1);
}

DeviceState 类:

public class DeviceState extends MainActivity {
public static void startup(final MainActivity activity) {
AlertDialog alertDialog = new AlertDialog.Builder(activity).create();
alertDialog.setTitle("Welcome");
alertDialog.setMessage("Select Ok to continue");
alertDialog.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Button startup = (Button) activity.findViewById(R.id.startup);
startup.performClick(); /* <<<THAT BUTTON TRIGGERS "SETUP" BELOW */
Rooted.rooted(activity);
}
});

alertDialog.show();
}

public static void setup(MainActivity activity) {
File file1 = new File("/system/app/somerandom.apk");
if (file1.exists()) {
cb1.setChecked(true);
} else {
cb1.setChecked(false);
}
}

fragment 类:

public class Fragments extends FragmentActivity {
public static class FragMods extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("BUGFIX", "BUGFIX");
super.onSaveInstanceState(outState);
}

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(
R.layout.fragment_mods, container, false);
return rootView;
}
}

public static class FragExtras extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
public FragExtras() {}

@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("BUGFIX", "BUGFIX");
super.onSaveInstanceState(outState);
}

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View extrasView = inflater.inflate(
R.layout.fragment_extras, container, false);
return extrasView;
}
}

public static class FragCred extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
public FragCred() {}

@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("BUGFIX", "BUGFIX");
super.onSaveInstanceState(outState);
}

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View creditView = inflater.inflate(
R.layout.fragment_credit, container, false);
return creditView;
}
}
}

最佳答案

对 fragment 内的任何 View 对象的更新应该使用 fragment 的 View 对象完成,在您的情况下为 rootView。

//使用 fragment View 对象,即 rootView,找到您要更新的 View 并进行更新。

Checkbox cb = (Checkbox) rootView.findViewById(R.id.checkBoxId);

//在cb上做更新

该 Action 在 Fragment Activity 的 onCreate() 中不起作用,如在 onCreate() 方法中,我们有对主要 Activity View 的 View 引用,即 viewPager,它充当不同 fragment View 的容器..

关于android - 使用 FragmentActivity 时,onCreate 中的任何内容都不能为 "setChecked"。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18367352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com