しばらくこれにいた。もどかしい!解決策を考えたり見つけたりできない。私は Java と Android に慣れていないので、私の無知が説明できるかもしれません。
以下のコードでは、選択された着信音を Textview ringtoneDisplayに割り当てたいと思います。私が理解している主な問題は、Textview がダイアログ内にあることです。これはメイン アクティビティから変更できません。メイン アクティビティからダイアログの Textview を変更するにはどうすればよいですか?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// When a configuration button is clicked that shows a dialog
public void confClicked(View v) {
// Define and create a dialog to display
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog);
dialog.show();
// Dialog has a button to change ringtone
Button changeRing = (Button) dialog.findViewById(R.id.changeRing);
final TextView ringtoneDisplay = (TextView) dialog.findViewById(R.id.ringtone_textview);
changeRing.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Bring up ringtone change dialog
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
MainActivity.this.startActivityForResult(intent, 5);
}
});
}
// Fired after ringtone was selected
protected void onActivityResult (final int requestCode, final int resultCode, final Intent intent)
{
if (resultCode == Activity.RESULT_OK && requestCode == 5)
{
Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null)
{
**// --> This below won't work..
// --> declaring ringtoneDisplay outside confClicked creates a runtime error.
// --> How do you go about updating ringtoneDisplay to display the ringtone that was chosen
ringtoneDisplay.settext(RingtoneManager.getRingtone(this, uri).getTitle(this));**
}
}
}
}