일단 코드를 붙여 봅니다.
맨 밑의 아이템클릭이벤트에서
선택된 미디어의 경로값을 가지고와야 하는데
rm (링톤매니저가 )이 전달이 잘 안돼는지
오류가 발생합니다. 혹시나해서
rm선언부를 앞으로 더 빼보기도하고
클릭리스너안에서 재선언 해봤지만 오류를 뿜어냅니다..
혹시 경로 가지고 오는방법 아시는분 알려주세요...
package com.example.aaasda;
import java.util.ArrayList;
import java.util.List;
import android.media.RingtoneManager;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.database.Cursor;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView)findViewById(R.id.LV1);
List<String> list = new ArrayList<String>();
RingtoneManager rm = new RingtoneManager(this);
rm.setType(RingtoneManager.TYPE_RINGTONE);
Cursor cursor = rm.getCursor();
if (cursor.moveToFirst())
{
int count = cursor.getColumnIndex(rm.EXTRA_RINGTONE_TITLE);
do
{
String MusicName = cursor.getString(count);
//Toast.makeText(getBaseContext(), MusicName, Toast.LENGTH_SHORT).show();
list.add(MusicName);
}while (cursor.moveToNext());
}
cursor.close();
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, list);
lv.setAdapter(arrayAdapter);
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
Toast.makeText(getBaseContext(), String.valueOf(rm.getRingtoneUri(arg2)), Toast.LENGTH_SHORT).show();
//String str = (String)arrayAdapter.getItem(arg2);
//Toast.makeText(getBaseContext(), String.valueOf(MediaStore.Audio.Media.getContentUri(str)), Toast.LENGTH_LONG).show();
}
});
}
}