0

これは私の好みのクラスです:

customPref
                .setOnPreferenceClickListener(new OnPreferenceClickListener() {

                    public boolean onPreferenceClick(Preference preference) {

                        Toast.makeText(getBaseContext(),
                                "The custom preference has been clicked",
                                Toast.LENGTH_LONG).show();
                        SharedPreferences customSharedPreference = getSharedPreferences(
                                "myCustomSharedPrefs", Activity.MODE_PRIVATE);
                        SharedPreferences.Editor editor = customSharedPreference
                                .edit();
                        editor.putString("myCustomPref",
                                "The preference has been clicked");
                        editor.commit();
                        return true;
                    }

                });

これはトーストにデータを表示することができます。

しかし、私がこのコードを適用すると

customPref
            .setOnPreferenceClickListener(new OnPreferenceClickListener() {

                public boolean onPreferenceClick(Preference preference) {

                    Intent int1 = new Intent(getBaseContext(),
                            termandcondition.class);
                    getBaseContext().startActivity(int1);


                    return true;
                }

            });

優先的にはエラーになり、データが表示されるようになりました。別のアクティビティに応募する方法を教えてください

これはprefnces.xmlファイルです

<Preference
        android:key="customPref"
        android:summary="END-USER LICENCE AGREEMENT FOR USING WWW.TAXMANN.COM"
        android:title="Term and Condition"



         />

何度もやってみて、今できるようになってください助けてください

4

1 に答える 1

0

問題は、のgetBaseContext().startActivity()代わりに使用していることですstartActivity()。このため、アクティビティ コンテキストの外部から新しいアクティビティを開始しようとします。そして、エラーが言うように:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? だから、これはおそらく本当にあなたが望むものではありません. Android では、バックスタックを維持するために、他のアクティビティ内からアクティビティを開始する必要があります。

于 2012-12-12T06:44:49.450 に答える