Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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:MenuInflater只能在模拟器上工作,不能在真实设备上工作_Java_Android_Android Studio_Popup_Layout Inflater - Fatal编程技术网

Java Android:MenuInflater只能在模拟器上工作,不能在真实设备上工作

Java Android:MenuInflater只能在模拟器上工作,不能在真实设备上工作,java,android,android-studio,popup,layout-inflater,Java,Android,Android Studio,Popup,Layout Inflater,由于某些原因,当以下代码运行时,我的手机不会显示带有文本“+创建新曲目”的弹出窗口,但如果我在Android Studio模拟器上运行,同样的事情也会发生 我找不出这个问题的根源。在我的emulatorpopup.show()上显示一个窗口,但当我通过调试器在我的设备上单步执行时,这一行什么也不做。奇怪的是,出现这种情况时,弹出窗口在设备上似乎不为空 如何在真实设备上显示弹出窗口 private void showTrackListing(){ int writePermissi

由于某些原因,当以下代码运行时,我的手机不会显示带有文本“+创建新曲目”的弹出窗口,但如果我在Android Studio模拟器上运行,同样的事情也会发生

我找不出这个问题的根源。在我的emulator
popup.show()
上显示一个窗口,但当我通过调试器在我的设备上单步执行时,这一行什么也不做。奇怪的是,出现这种情况时,
弹出窗口
在设备上似乎不为空

如何在真实设备上显示弹出窗口

private void showTrackListing(){
        int writePermissionCheck = ContextCompat.checkSelfPermission(getActivity(),
                Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (writePermissionCheck != PackageManager.PERMISSION_GRANTED){
            Toast.makeText(getActivity(), "Need storage write permissions", Toast.LENGTH_LONG).show();
            return;
        }
        trackListing = getTrackNames();                      
        PopupMenu popup = new PopupMenu(getActivity(), v);

        for (int i = 0; i < trackListing.length; i++) {      //add a menu item for each existing track
            popup.getMenu().add(trackListing[i].getName());
        }

        //TODO: Add Checkable list on longpress to delete files
        //TODO: potentially change popup menu to ListView for better CAB cooperation
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.new_track:
                        trackSelectButton.setText("...");
                        Toast.makeText(getActivity(), "Name your new track.", Toast.LENGTH_SHORT).show();
                        txtTrackName.setVisibility(txtTrackName.VISIBLE);
                        return true;
                    default:
                        selectedTrackName = (item.getTitle().toString());
                        trackSelectButton.setText(selectedTrackName);
                        for (int i = 0; i < trackListing.length; i++) {      //add a menu item for each existing track
                            if (trackListing[i].getName().equals(selectedTrackName)) {
                                selectedTrack = trackListing[i];
                                AudioRecorder.setFile(selectedTrack);
                            }
                        }
                        return true;
                }
            }
        });

        MenuInflater popupInflater = popup.getMenuInflater();
        popupInflater.inflate(R.menu.popup_menu_track_selection, popup.getMenu());
        popup.show();
    }
private void showTrackListing(){
int writePermissionCheck=ContextCompat.checkSelfPermission(getActivity(),
清单。权限。写入(外部存储);
if(writePermissionCheck!=已授予PackageManager.PERMISSION\u){
Toast.makeText(getActivity(),“需要存储写入权限”,Toast.LENGTH_LONG.show();
返回;
}
trackListing=getTrackNames();
PopupMenu popup=新的PopupMenu(getActivity(),v);
对于(int i=0;i
弹出菜单\u track\u selection.xml



发布您的“弹出菜单\曲目\选择”layout@RajeshPanchaladded.u是否为
写入外部存储添加了
ActivityCompat.requestPermissions
?@rafsanahmad007是的,我添加了。权限似乎与弹出窗口未显示的问题没有直接关系。
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">
        <item android:id="@+id/new_track"
            android:title="+ create new track"/>
    </menu>