설정 메뉴로 DialogPreference
을 사용하고 싶습니다 (앱 화면의 오른쪽 상단에있는 3 개의 점). 이것은 나의 현재의 접근 방식입니다 :Android - MainActivity에서 맞춤 DialogPreference를 시작하는 방법은 무엇입니까?
class SettingsActivity : DialogPreference{
constructor(context : Context, attrs : AttributeSet) : super(context,attrs){
isPersistent = false
}
override fun onBindDialogView(view: View?) {
super.onBindDialogView(view)
(context as Activity).fragmentManager.findFragmentById(R.xml.preferences)
}
override fun onDialogClosed(positiveResult: Boolean) {
super.onDialogClosed(positiveResult)
}
}
저는이 설정 메뉴를 만드는 방법에 대한 자습서를 읽었으므로 사실 지금은 꽤 혼란 스럽습니다. 내 첫 번째 방법은 사용 이는 PreferenceActivity
이었다 PreferenceFragment
:
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"
에는 사용할 수있는 옵션이 없습니다. 왜 그럴까요?
의 서브 클래스 실례합니다, -
AppCompatActivity
-ActionBarActivity
가 "사용할 수있는 옵션이 없습니다"라는 의미입니까? 매니페스트를 수정하고이 정의를 포함해야합니까? – statosdotcom나는 안드로이드 스튜디오가'SettingsActivity'를 선택하는 옵션을주지 않는다는 것을 의미합니다. (아마도 실제로 활동이 없기 때문일 것입니다.) – binaryBigInt