2011-11-24 45 views
1
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

这是你正在使用的ListPreference吗?我的意思是,首选条目显示了您需要在“PreferenceActivity”中选择的单选项列表以及类似的东西?您应该使用正确的名称,以便我们确切知道您使用哪种组件来制作应用程序。 – davidcesarino

+0

是的,它是在偏好活动中使用的列表首选项。我很抱歉,我对这一切都很陌生,我仍然在学习所有的术语,什么是什么。 – Jasonwilliams10

+0

没问题,我只是在这里帮你。等一下,我会发布一些东西。 :-) – davidcesarino

回答

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"); 
+0

我必须结合我所拥有的和你发布的内容,我还必须把// TODO结束onCreate非常感谢你的帮助 – Jasonwilliams10

+0

不客气,我很高兴你解决了你的问题。 – davidcesarino