Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android首选项-打开/关闭开关图标在屏幕外滚动时重置_Java_Android_Eclipse - Fatal编程技术网

Java Android首选项-打开/关闭开关图标在屏幕外滚动时重置

Java Android首选项-打开/关闭开关图标在屏幕外滚动时重置,java,android,eclipse,Java,Android,Eclipse,我正在eclipse中编写一个android应用程序。在我的首选项/设置屏幕的顶部有开/关开关图标。如果我滚动到设置屏幕的底部,然后滚动回顶部以再次查看开关,则它们已从关闭变为打开,或从打开变为关闭。它们是随机的。并非所有开关都会同时改变。有时是少数,有时是全部 大多数情况下,它们似乎从关闭切换到打开,但有时情况正好相反。以前有人见过这个吗?有人能帮忙解决这个问题吗?我会张贴代码,如果需要的话,当我到一台电脑。谢谢 编辑:这是我的代码。这是我的主要活动,它是选项菜单代码。此主要活动是具有多个片段

我正在eclipse中编写一个android应用程序。在我的首选项/设置屏幕的顶部有开/关开关图标。如果我滚动到设置屏幕的底部,然后滚动回顶部以再次查看开关,则它们已从关闭变为打开,或从打开变为关闭。它们是随机的。并非所有开关都会同时改变。有时是少数,有时是全部

大多数情况下,它们似乎从关闭切换到打开,但有时情况正好相反。以前有人见过这个吗?有人能帮忙解决这个问题吗?我会张贴代码,如果需要的话,当我到一台电脑。谢谢

编辑:这是我的代码。这是我的主要活动,它是选项菜单代码。此主要活动是具有多个片段的ViewPager。超过一半的时候,你们会看到我称之为设置活动的地方

@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
    // Handle item selection

    switch (item.getItemId()) {

    case R.id.refresh:
        item.setActionView(R.layout.ab_loading);
        item.expandActionView();

        if (currentTab == 0 && mMarketFragment != null && mMarketFragment.isAdded()) {
            Log.v(TAG, "MarketFrag isnt null and its added");

            Loader loader = mMarketFragment.getLoaderManager().getLoader(2); 
            if ( loader != null && !loader.isReset() ) { 
                mMarketFragment.getLoaderManager().restartLoader(2, null, mMarketFragment); 
                mMarketFragment.getLoaderManager().restartLoader(3, null, mMarketFragment); 
                mMarketFragment.getLoaderManager().restartLoader(4, null, mMarketFragment);
            } else {
                mMarketFragment.getLoaderManager().initLoader(2, null, mMarketFragment);
                mMarketFragment.getLoaderManager().initLoader(3, null, mMarketFragment);
                mMarketFragment.getLoaderManager().initLoader(4, null, mMarketFragment);
            }
        }             
        else if (currentTab == 1 && mPortfolioFragment != null && mPortfolioFragment.isAdded()) {
            Log.v(TAG, "PortfolioFrag isnt null and is added");
            Loader loader2 = mPortfolioFragment.getLoaderManager().getLoader(-1); 
            if ( loader2 != null && !loader2.isReset() ) { 
                mPortfolioFragment.getLoaderManager().restartLoader(-1, null, mPortfolioFragment); 
            } else {
                mPortfolioFragment.getLoaderManager().initLoader(-1, null, mPortfolioFragment);
            }
            mPortfolioFragment.getLoaderManager().getLoader(-1).forceLoad();
        }
        else if (currentTab == 2 && mNewsFragment != null) {
            mNewsFragment.refresh();
        }
        else if (currentTab == 3 && mTwitterFragment != null) {
            mTwitterFragment.refresh();
        }

        return true;

    case R.id.dark:
        MainStocksICSActivity.THEME = R.style.DefaultTheme;
        saveTheme(R.style.DefaultTheme);
        return true;
    case R.id.light:
        MainStocksICSActivity.THEME = R.style.LightTheme;
        saveTheme(R.style.LightTheme);
        return true;
    case R.id.lightDark:
        MainStocksICSActivity.THEME = R.style.LightDarkTheme;
        saveTheme(R.style.LightDarkTheme);
        return true;
    case R.id.settings:
        Intent intent = new Intent();
        intent.setClass(MarketActivity.this, SettingsActivity.class);
        Log.v(TAG, "settings call");
        startActivityForResult(intent, ACTIVITY_SETTINGS);
        return true;        
    case android.R.id.home:
        // app icon in action bar clicked; go home
       super.onBackPressed();
       return true;
    case R.id.stocksearch:
        intent = new Intent();
        intent.setClass(MarketActivity.this, StockSearchActivity.class);
        //intent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
        //intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        Log.v(TAG, "stock search call");
        startActivityForResult(intent, MENU_STOCK_ADDTICKER);
        return true;


    default:
        return true;
    }        
}
这是我的设置活动和片段

public class SettingsActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Display the fragment as the main content.
    getFragmentManager().beginTransaction().replace(android.R.id.content,
            new PrefsFragment()).commit();
}


public static class PrefsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.settings);
    }
}
}

这是我的设置XML

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
android:key="using_categories_in_root_screen"
android:title="SETTINGS"
android:summary="Test">

<PreferenceCategory 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="settings_topic_title"
    android:title="GENERAL">

    <SwitchPreference
        android:key="settings_rss_feed_save"
        android:title="@string/settings_saving_policy_title"
        android:switchTextOn = "YES"
        android:switchTextOff = "NO"
        android:summary="@string/settings_saving_policy_summary" />

    <!--CheckBoxPreference
        android:key="settings_auto_sync"
        android:title="@string/settings_sync_title"
        android:summary="@string/settings_sync_summary" /-->


    <SwitchPreference
            android:key="settings_use_external_browser"
            android:title="Use external browser"
            android:summary="User external browser when displaying web content for stocks and news"
            android:switchTextOn = "YES"
            android:switchTextOff = "NO"
            android:defaultValue="false" />

    </PreferenceCategory>
<PreferenceCategory
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="invert_graph"
    android:title="Graph Color">

    <SwitchPreference
            android:key="settings_invert_graph"
            android:title="Invert Graph with Theme"
            android:summary="Whether to invert the graph color wiht the selected theme."
            android:switchTextOn = "Yes"
            android:switchTextOff = "No"
            android:defaultValue="true" />

</PreferenceCategory>

<PreferenceCategory
        android:title="Quotes Source">

    <EditTextPreference
            android:key="edittext_preference"
            android:title="@string/title_edittext_preference"
            android:summary="@string/summary_edittext_preference"
            android:dialogTitle="@string/dialog_title_edittext_preference" />

    <ListPreference
            android:key="stock_data_source"
            android:title="Quote Data Source"
            android:summary="Select Yahoo or Google for quotes"
            android:entries="@array/stock_data_source_options"
            android:entryValues="@array/stock_data_source"
            android:defaultValue="yahoo_data"
            android:dialogTitle="Select the quote source" />
    <ListPreference
            android:key="chart_data_source"
            android:title="Chart Data Source"
            android:summary="Set the Small Chart (non-trendline is better for clearer small text)"
            android:entries="@array/chart_data_source_options"
            android:entryValues="@array/chart_data_source"
            android:defaultValue="yahoo_chart_with_trendlines"
            android:dialogTitle="Select the chart source" />

</PreferenceCategory>

<PreferenceCategory
        android:title="News Options">

    <!-- This PreferenceScreen tag serves as a screen break (similar to page break
         in word processing). Like for other preference types, we assign a key
         here so it is able to save and restore its instance state. -->
    <PreferenceScreen
            android:key="subscriptions_screen"
            android:title="Yahoo News Categories"
            android:summary="Select which categories to display in news general screen">

        <!-- You can place more preferences here that will be shown on the next screen. -->

        <PreferenceCategory 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:key="subscriptions_news"
            android:title="@string/title_newstopic">
            <SwitchPreference
                    android:key="usmarkets"
                    android:title="@string/title_usmarkets"
                    android:summary="Something"
                    android:switchTextOn = "YES"
                    android:switchTextOff = "NO"
                     />
            <SwitchPreference
                    android:key="mostpopular"
                    android:title="@string/title_mostpopular"
                    android:summary="Test"
                    android:switchTextOn = "YES"
                    android:switchTextOff = "NO"
                     />
            <SwitchPreference
                    android:key="investingstrategies"
                    android:title="@string/title_investingstrategies"
                    android:summary="four"
                    android:switchTextOn = "YES"
                    android:switchTextOff = "NO"
                     />
            <SwitchPreference
                    android:key="taxes"
                    android:title="@string/title_taxes"
                    android:summary="funtimes"
                    android:switchTextOn = "YES"
                    android:switchTextOff = "NO"
                     />
        </PreferenceCategory>
        <PreferenceCategory 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:key="subscription_basicmaterials"
            android:title="@string/title_basicmaterials">

            <SwitchPreference
                android:key="OilGasRefiningMarketing"
                android:title="@string/title_OilGasRefiningMarketing"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="Gold"
                android:title="@string/title_Gold"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="Silver"
                android:title="@string/title_Silver"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="SteelIron"
                android:title="@string/title_SteelIron"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="Synthetics"
                android:title="@string/title_Synthetics"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
        </PreferenceCategory>
        <PreferenceCategory 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:key="subscription_financial"
            android:title="@string/title_financial">
            <SwitchPreference
                android:key="AssetManagement"
                android:title="@string/title_AssetManagement"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="RealEstateDevelopment"
                android:title="@string/title_RealEstateDevelopment"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="CreditServices"
                android:title="@string/title_CreditServices"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="LifeInsurance"
                android:title="@string/title_LifeInsurance"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="SavingsLoans"
                android:title="@string/title_SavingsLoans"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
        </PreferenceCategory>
        <PreferenceCategory 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:key="subscription_healthcare"
            android:title="@string/title_healthcare">
            <SwitchPreference
                android:key="HealthCarePlans"
                android:title="@string/title_HealthCarePlans"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="Hospitals"
                android:title="@string/title_Hospitals"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="MedicalInstrumentsSupplies"
                android:title="@string/title_MedicalInstrumentsSupplies"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
        </PreferenceCategory>
        <PreferenceCategory 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:key="subscription_technology"
            android:title="@string/title_technology">
            <SwitchPreference
                android:key="ApplicationSoftware"
                android:title="@string/title_ApplicationSoftware"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="HealthcareInformationServices"
                android:title="@string/title_HealthcareInformationServices"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="InternetSoftwareServices"
                android:title="@string/title_InternetSoftwareServices"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
            <SwitchPreference
                android:key="WirelessCommunications"
                android:title="@string/title_WirelessCommunications"
                android:switchTextOn = "YES"
                android:switchTextOff = "NO"
                 />
        </PreferenceCategory>

    </PreferenceScreen>
    <SwitchPreference
            android:key="google_news"
            android:title="Google News"
            android:summary="Whether to include Google News"
            android:switchTextOn = "YES"
            android:switchTextOff = "NO"
            android:defaultValue="false" />     
    <SwitchPreference
            android:key="foxbusiness_news"
            android:title="Fox Business News"
            android:summary="Whether to include Fox Business News"
            android:switchTextOn = "YES"
            android:switchTextOff = "NO"
            android:defaultValue="true" />
    <SwitchPreference
            android:key="bloggingstocks_news"
            android:title="Blogging Stocks News"
            android:summary="Whether to include BloggingStocks News"
            android:switchTextOn = "YES"
            android:switchTextOff = "NO"
            android:defaultValue="false" /> 
    <SwitchPreference
            android:key="wsj_news"
            android:title="Wall St Journal Market News"
            android:summary="Whether to include WSJ News"
            android:switchTextOn = "YES"
            android:switchTextOff = "NO"
            android:defaultValue="false" /> 
</PreferenceCategory>    


所有开关在离开屏幕时都不会卡住并复位。请注意,我的设置有几个屏幕,一个使用列表首选项,而顶部的主屏幕则没有。然而,并非所有的开关都能保持不变。我错过了什么愚蠢的事吗?如果我忽略了什么,请帮忙。谢谢

设置页面是否使用ListView?否,我使用的是android文档中显示的标准addPreferencesFromResource和PreferenceXML文件。列表适配器似乎在屏幕外循环使用视图。但不,我没有使用任何列表视图或自定义设置。其常规设置取决于文档。我将在一分钟后发布我的代码。我已编辑了我的第一篇文章/问题,并添加了相关代码。谢谢