2017-12-30 60 views
0

設定メニューとしてDialogPreferenceを使用したいと思います(アプリケーションの画面の右上にある3つの点)。これは私の現在のアプローチです:Android - MainActivityからカスタムDialogPreferenceを起動するには?

これらの設定メニューの作成方法に関するチュートリアルを読んでいるので、私は実際にはかなり混乱しています。私の最初のアプローチはPreferenceFragmentを使用していますPreferenceActivityた:

class SettingsFragment : PreferenceFragment { 
    constructor() : super() 
    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     addPreferencesFromResource(R.xml.preferences) 
    } 
} 

私は知らない - 私はあまりにもDialogPreferenceの場合にこれを使用する必要があるのですか?マイpreferences.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <com.test.view.DialogExPreference 
     android:title="Title" 
     android:dialogMessage="Dialog Message" 
     android:negativeButtonText="test"/> 
</PreferenceScreen> 

私はこのような私のカスタムDialogPreference起動しよう:

override fun onOptionsItemSelected(item: MenuItem): Boolean { 
    return when (item.itemId) { 
     R.id.action_settings -> { 
      var i = Intent(this,SettingsActivity::class.java) 
      startActivity(i) 
      return true 
     } 
     else -> super.onOptionsItemSelected(item) 
    } 
} 

をしかし、私はこのエラーを取得する:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.standardbenutzer.integrate/com.example.standardbenutzer.integrate.SettingsActivity}; have you declared this activity in your AndroidManifest.xml? 

しかし、私は私のAndroidManifest.xmlに追加しよう - android:name=".SettingsActivity"のオプションはありません - それはなぜですか?

+0

の任意のサブクラスは何をすべきか、すみません「利用可能なオプションはありません」という意味ですか?マニフェストを変更してこの定義を含める必要がありますか? – statosdotcom

+0

私はAndroid Studioが 'SettingsActivity'を選択するオプションを与えていないことを意味します(実際にはアクティビティがない可能性があります) – binaryBigInt

答えて

1

SettingsActivity延長DialogPreferenceDialogPreferenceは、アクティビティとして認識されないと、それはあなたがActivity使用することができます Activityクラスのサブクラスではありませんので、活動としてマニフェストで使用または定義することはできません - AppCompatActivity - ActionBarActivity - FragmentActivityをかActivity.class

+0

あなたの答えをありがとう - しかし私に質問しましょう:もし' DialogPreference' 「活動」ではない? – binaryBigInt

+1

カスタムを作成してDialogPreferenceを新しいクラスのみに拡張し、このクラスをur xmlプリファレンスレイアウトで使用します。 これは良いチュートリアルです [link] [http://mysoftdevs.blogspot.com.eg/2011] /12/android-how-to-create-dialogpreference.html] –

+0

今、 'preferences.xml'はどうしたらいいですか?どのように私はそれを使用/表示することができますか? – binaryBigInt

関連する問題