menuitem.getmenuinfo is null in onContextItemSelected
I have a ScrollView with an embedded LinearLayout, as suggested in the
ScrollView documentation. The following is a reduction of the layout:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab2_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
I use the following pattern in many Activities that use a ListView instead
of a ScrollView, with no issue. So, the issue seems unique to ScrollView.
final ScrollView scrollView = (ScrollView)
frame.findViewById(R.id.tab2_view);
final LinearLayout layout = (LinearLayout) frame.findViewById(R.id.top);
//load and sort backing ArrayList
//neither of these calls resolve the issue
registerForContextMenu(scrollView);
//registerForContextMenu(layout);
//load layout with views
Here's where the issue occurs. the value returned from item.getMenuInfo()
is always null.
@Override
public boolean onContextItemSelected(MenuItem item){
boolean result = false;
try
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo)
item.getMenuInfo(); //why is this null???
switch (item.getItemId()) {
//do stuff
}
}
catch (Exception e) { ExceptionHandler.handleException(LOG_TAG, e); }
return result;
}
Does anyone know how to resolve this issue?
I did find a work around in maintaining state variables, and checking
against the menuItem's title instead. But, I would prefer to understand
how to solve this issue.
LOG CAT during long press and pressing button in context menu:
09-09 05:34:15.815: I/InputReader(30174): Touch event's action is 0x1
(deviceType=0) [pCnt=1, pending(waiting finished signal)=0, s=]
09-09 05:34:15.815: I/InputDispatcher(30174): Delivering touch to current
input target: action: 0x1
09-09 05:34:15.815: I/InputDispatcher(30174): Delivering touch to current
input target: action: 0x1
09-09 05:34:16.860: I/InputReader(30174): Touch event's action is 0x0
(deviceType=0) [pCnt=1, pending(waiting finished signal)=0, s=0.5848 ]
09-09 05:34:16.860: I/InputDispatcher(30174): Delivering touch to current
input target: action: 0x0
09-09 05:34:16.860: I/InputDispatcher(30174): Delivering touch to current
input target: action: 0x0
09-09 05:34:16.990: I/InputReader(30174): Touch event's action is 0x1
(deviceType=0) [pCnt=1, pending(waiting finished signal)=0, s=]
09-09 05:34:16.990: I/InputDispatcher(30174): Delivering touch to current
input target: action: 0x1
09-09 05:34:16.990: I/InputDispatcher(30174): Delivering touch to current
input target: action: 0x1
09-09 05:34:17.095: V/WindowOrientationListener(30174): nearestRotation :
0 Angle: 357 tilt: 52
09-09 05:34:17.125: I/AudioService(30174): playSoundEffect() type:0 volume:-1
09-09 05:34:17.125: I/AudioPolicyManagerBase(1800): getSituationVolume:
isBTConnected:0 isHeadConnected:0
09-09 05:34:17.125: I/AudioPolicyManager(1800): getParamFromPolicy
deviceInt = 0, situationInt = 1, situationVolume = 0.300000
09-09 05:34:17.135: I/AudioPolicyManager(1800): startOutput() output 1,
stream 1, session 3438
09-09 05:34:17.135: I/AudioFlinger(1800): start output streamType (0, 1)
for 1
09-09 05:34:17.140: V/yamaha::media::Parameters(1800):
Parameters::getDacInfo()
09-09 05:34:17.140: V/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::createVolume()
09-09 05:34:17.140: V/yamaha::media::Parameters(1800):
Parameters::getVolInfo()
09-09 05:34:17.140: V/yamaha::media::Parameters(1800):
Parameters::getVolInfo(TuningParam::VolumePatterns)
09-09 05:34:17.140: V/yamaha::media::Parameters(1800): getvol INCALL_TTY_FULL
09-09 05:34:17.140: V/yamaha::media::Parameters(1800): getvol INCALL_TTY_HCO
09-09 05:34:17.140: V/yamaha::media::Parameters(1800): getvol INCALL_TTY_VCO
09-09 05:34:17.140: D/yamaha::media::VolumeCtrl(1800): Dir0 : AP
Playback Music SP (0001h)
09-09 05:34:17.140: D/yamaha::media::VolumeCtrl(1800): Dir0Att : AP
Playback Music SP (0001h)
09-09 05:34:17.140: D/yamaha::media::VolumeCtrl(1800): DacMaster : AP
Playback Music SP (0001h)
09-09 05:34:17.140: D/yamaha::media::VolumeCtrl(1800): Sp : AP
Playback Music SP (FD81h)
09-09 05:34:17.140: V/yamaha::media::UserDep(1800):
UserDep::getRouteInfo(output: audioengine=0, devices=00000002h
09-09 05:34:17.140: V/yamaha::media::UserDep(1800):
incall: onoff=0, devices=00000000h
09-09 05:34:17.140: V/yamaha::media::UserDep(1800):
capture: onoff=0, devices=00000000h, audioSource=0
09-09 05:34:17.140: V/yamaha::media::UserDep(1800):
playback: audio_onoff=1, line_onoff=0)
09-09 05:34:17.140: V/yamaha::media::UserDep(1800): Playback[Audio],
Output[dev:DAC, NonAE]
09-09 05:34:17.140: V/yamaha::media::UserDep(1800): editDacDst(devices=2h)
HPOUT Off
09-09 05:34:17.140: V/yamaha::media::UserDep(1800): editDacDst(devices=2h)
RCOUT Off
09-09 05:34:17.140: V/yamaha::media::UserDep(1800): editDacDst(devices=2h)
LINEOUT1 Off
09-09 05:34:17.140: V/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::setVolume()
09-09 05:34:17.140: D/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::setVolume() FM Playback: Ready
09-09 05:34:17.140: D/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::setVolume() VoiceCall: Ready
09-09 05:34:17.225: W/InputManagerService(30174): Window already focused,
ignoring focus gain of:
com.android.internal.view.IInputMethodClient$Stub$Proxy@422761b8
09-09 05:34:17.300: E/yamaha::media::MixerCtrl(1800): setVolume() DIR#0:,
vol=0.000000dB
09-09 05:34:17.300: E/yamaha::media::MixerCtrl(1800): setVolume() DIR#0
ATT:, vol=0.000000dB
09-09 05:34:17.300: E/yamaha::media::MixerCtrl(1800): setVolume() Master:,
vol=0.000000dB
09-09 05:34:17.300: E/yamaha::media::MixerCtrl(1800): setVolume() AD
Analog:, vol=0.000000dB
09-09 05:34:17.300: E/yamaha::media::MixerCtrl(1800): setVolume()
Headphone:, vol=-96.000000dB
09-09 05:34:17.305: E/yamaha::media::MixerCtrl(1800): setVolume()
Speaker:, vol=-2.500000dB
09-09 05:34:17.305: E/yamaha::media::MixerCtrl(1800): setVolume()
Receiver:, vol=-96.000000dB
09-09 05:34:17.305: E/yamaha::media::MixerCtrl(1800): setVolume() Mic 1
Gain:, vol=15.000000dB
09-09 05:34:17.305: E/yamaha::media::MixerCtrl(1800): setVolume() Mic 2
Gain:, vol=15.000000dB
09-09 05:34:17.305: E/yamaha::media::MixerCtrl(1800): setVolume() Mic 3
Gain:, vol=15.000000dB
09-09 05:34:17.320: I/ALSAModule(1800): Initialized ALSA PLAYBACK device hifi
09-09 05:34:17.330: E/DataRouter(1795): usb connection is true
09-09 05:34:17.330: E/DataRouter(1795): DSR is ON. Don't send DTR ON.
09-09 05:34:17.440: I/SurfaceFlinger(30137): id=1659 Removed idx=3 Map Size=4
09-09 05:34:17.440: I/SurfaceFlinger(30137): id=1659 Removed idx=-2 Map
Size=4
09-09 05:34:17.560: I/AudioPolicyManager(1800): stopOutput() output 1,
stream 1, session 3438
09-09 05:34:17.580: I/AudioFlinger(1800): stop output streamType (0, 1) for 1
09-09 05:34:18.080: V/yamaha::media::Parameters(1800):
Parameters::getDacInfo()
09-09 05:34:18.085: V/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::createVolume()
09-09 05:34:18.085: V/yamaha::media::Parameters(1800):
Parameters::getVolInfo()
09-09 05:34:18.085: V/yamaha::media::Parameters(1800):
Parameters::getVolInfo(TuningParam::VolumePatterns)
09-09 05:34:18.085: V/yamaha::media::Parameters(1800): getvol INCALL_TTY_FULL
09-09 05:34:18.085: V/yamaha::media::Parameters(1800): getvol INCALL_TTY_HCO
09-09 05:34:18.085: V/yamaha::media::Parameters(1800): getvol INCALL_TTY_VCO
09-09 05:34:18.085: D/yamaha::media::VolumeCtrl(1800): Dir0 : AP
Playback Music SP (0001h)
09-09 05:34:18.085: D/yamaha::media::VolumeCtrl(1800): Dir0Att : AP
Playback Music SP (0001h)
09-09 05:34:18.090: D/yamaha::media::VolumeCtrl(1800): DacMaster : AP
Playback Music SP (0001h)
09-09 05:34:18.090: D/yamaha::media::VolumeCtrl(1800): Sp : AP
Playback Music SP (FD81h)
09-09 05:34:18.090: V/yamaha::media::UserDep(1800):
UserDep::getRouteInfo(output: audioengine=0, devices=00000002h
09-09 05:34:18.090: V/yamaha::media::UserDep(1800):
incall: onoff=0, devices=00000000h
09-09 05:34:18.090: V/yamaha::media::UserDep(1800):
capture: onoff=0, devices=00000000h, audioSource=0
09-09 05:34:18.090: V/yamaha::media::UserDep(1800):
playback: audio_onoff=1, line_onoff=0)
09-09 05:34:18.090: V/yamaha::media::UserDep(1800): Playback[Audio],
Output[dev:DAC, NonAE]
09-09 05:34:18.090: V/yamaha::media::UserDep(1800): editDacDst(devices=2h)
HPOUT Off
09-09 05:34:18.090: V/yamaha::media::UserDep(1800): editDacDst(devices=2h)
RCOUT Off
09-09 05:34:18.090: V/yamaha::media::UserDep(1800): editDacDst(devices=2h)
LINEOUT1 Off
09-09 05:34:18.090: V/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::setVolume()
09-09 05:34:18.090: D/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::setVolume() FM Playback: Ready
09-09 05:34:18.090: D/yamaha::media::VolumeCtrl(1800):
VolumeCtrl::setVolume() VoiceCall: Ready
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() DIR#0:,
vol=0.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() DIR#0
ATT:, vol=0.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() Master:,
vol=0.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() AD
Analog:, vol=0.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume()
Headphone:, vol=-96.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume()
Speaker:, vol=-2.500000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume()
Receiver:, vol=-96.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() Mic 1
Gain:, vol=15.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() Mic 2
Gain:, vol=15.000000dB
09-09 05:34:18.140: E/yamaha::media::MixerCtrl(1800): setVolume() Mic 3
Gain:, vol=15.000000dB
09-09 05:34:19.335: E/DataRouter(1795): usb connection is true
09-09 05:34:19.335: E/DataRouter(1795): DSR is ON. Don't send DTR ON.
: E/(): Device disconnected
No comments:
Post a Comment