引用电子邮件主题中的列表首选项

时间:2011-11-24 02:17:56

标签: android

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行显示的内容,以便在生成电子邮件时自动填充。

我已经尝试过在这里和其他搜索中找到的所有内容,并且没有任何运气。

1 个答案:

答案 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");