Во-первых, я использую Навигационный ящик для показа некоторых фрагментов, при попытке показать контекстное меню во фрагментах, которое не отображается как контекст, только как меню параметров. затем я попытался использовать его как есть (меню параметров), но он не отображает мое диалоговое окно с предупреждением, хотя я пытался использовать его для действия, и метод работал отлично
Это главное. xml Файл меню
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings" />
и это мой файл фрагмента .kt
override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenu.ContextMenuInfo?) {
menu.add(0, v.getId(), 0, "action_settings")
}
override fun onContextItemSelected(item: MenuItem): Boolean {
if (item.getItemId() == R.id.action_settings) {
val dialog = AlertDialog.Builder(getContext())
dialog.setTitle("Enter Bookmark Name")
val factory = LayoutInflater.from(this.getContext())
val view: View = factory.inflate(layout.alertlayout, null)
dialog.setView(view)
val alert = dialog.create()
alert.show()
}
return true;
}
И это моя попытка применить коды к действию, пробная версия, которая сработала для меня
class Test : AppCompatActivity() {
lateinit var pdf: PDFView
lateinit var Btn1: Button
var ac1 = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
pdf = findViewById(R.id.Viewer1)
Btn1 = findViewById(R.id.Btn)
pdf.fromAsset("01P1.pdf")
.defaultPage(ac1)
.enableSwipe(true)
.scrollHandle(CustomScrollHandle(this))
.swipeHorizontal(false)//set horizontal swipe to false
.enableDoubletap(true)//double tap to zoom
.load()
registerForContextMenu(Btn1)
}
override fun onContextItemSelected(item: MenuItem): Boolean {
val dialog = AlertDialog.Builder(this)
dialog.setTitle("Enter Bookmark Name")
val factory = LayoutInflater.from(this)
val view: View = factory.inflate(R.layout.alertlayout, null)
dialog.setView(view)
val alert = dialog.create()
alert.show()
return true;
}
override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
if (menu != null) {
if (v != null) {
menu.add(0, v.getId(), 0, "action_settings")
}
}
}
так, что не так с моим кодом ??