我知道听众应该会让生活更轻松,尤其是在像android这样的多任务环境中,但有时(对我而言)它让事情变得更加困难。处理听众
现在我有一个展现活动列表的ExpandableList活动,我希望用户选择感兴趣的小组&并选择当该活动发生时将播放的通知声音。因此,列表设置,我有一个setOnChildClickListener建立它运行我的SetRingtone方法:
protected void SetRingtone(int groupPosition, int childPosition) {
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_ALL);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
"Select Tone");
startActivityForResult(intent, PICK_NOTIFICATION_SOUND);
}
所以该方法可以访问选定组和儿童的位置。问题是,要获得从铃声选择器选择的铃声,你必须建立另一个利斯特,onActivityResult:
protected void onActivityResult(int requestCode,
int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri uri =
data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null) {
String ringTonePath = uri.toString();
ExpandableListView variableView =
(ExpandableListView)findViewById(android.R.id.list);
int p = variableView.getSelectedItemPosition();
Log.d("phca", "The selected item number was: " +
p + "; The sound selected is: " + uri);
}
}
}
现在我没有访问到所选择的组和儿童。正如你所看到的,我试图从getSelectedItemPosition获取位置,但它总是在这里返回-1。
我知道我可能比实际上更难。