0
已在此处停留了一段时间。令人沮丧!无法想到或找到解决方案。我对Java和Android很感兴趣,这可能解释我的无知。在铃声选择对话框后,从主要活动中更改对话框中的Textview文本
在下面的代码我想的是被选择了对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));**
}
}
}
}
感谢您的意见。 如果我正确理解你,那么你所说的是我必须关闭对话框并重新加载它。在对话框中还有很多其他的事情,我没有包含在代码中。再次关闭和打开对话框会导致问题...理想的情况是我可以更新文本视图来指示选择的铃声。 – gpwr
据我所知是不可能的。可以改为使用另一个活动而不是对话框 – ramaral
对话框的目的是询问或报告一些内容。如果你想处理一些事情,最好使用一个活动 – ramaral