private void submit()
{
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String listprefs = SP.getString("listprefs","1");
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String[] recipients = new String[]{""};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, );
我不确定这是否可行,但我需要在列表首选项中选择的值显示在电子邮件的主题中。这是应用程序提交功能代码的一部分。
它的工作方式很好,但我需要用户选择在emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT
行显示的内容,以便在生成电子邮件时自动填充。
我已经尝试过在这里和其他搜索中找到的所有内容,并且没有任何运气。
答案 0 :(得分:0)
如果您想要显示的值:
int i = listPreferenceObject.findIndexOfValue(listPreferenceObject.getValue());
String optionFromList = (String) listPreferenceObject.getEntries()[i];
...
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, optionFromList);
如果你想要内部价值,只需这样做:
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, listPreferenceObject.getValue());
或者,您可以使用PreferenceManager对象检索值,就像您已经这样做的那样。但是如果你已经参加了同样的活动,那么我更容易调用ListPreference。
当然,我假设您正确初始化了listpreference对象。可能是:
ListPreference listPreferenceObject = (ListPreference) this.findPreference("listprefs");