我知道聽衆應該會讓生活更輕鬆,尤其是在像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。
我知道我可能比實際上更難。