0

更新

我收到此错误:

Syntax error on token(s), misplaced construct(s)

这是更新的代码:

public class SettingsFragment extends PreferenceActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Add a button to the header list.
        if (hasHeaders()) {
            TextView txt = new TextView(this);
            txt.setText("Falcon pro version 1.2 @falcon");
            txt.setGravity(Gravity.CENTER);
            setListFooter(txt);
        }

        Preference sharingPref = findPreference("sharing");

        sharingPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
            Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
            shareIntent.setType("text/plain");
            shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Share application");
            String shareMessage = "My text";
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage);
            startActivity(Intent.createChooser(shareIntent, "Share"));
            return true;
        });

    }

    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.preferences, target);
    }

}

==================================================== ===============================

当用户单击 android 首选项时,有什么方法可以显示 android 选择器?

或者是否可以从首选项 xml 调用此代码?

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Share application");
String shareMessage = "My text";
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage);
startActivity(Intent.createChooser(shareIntent, "Share"));
4

2 回答 2

3

要访问 preferenceActivity 中的菜单项,您可以像这样请求首选项:

Preference sharingPref = findPreference("sharing");

“分享”是key首选。

有了这个,你可以添加setOnPreferenceClickListener这样的:

sharingPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
   public boolean onPreferenceClick(Preference preference) {
       Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
       shareIntent.setType("text/plain");
       shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Share application");
       String shareMessage = "My text";
       shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage);
       startActivity(Intent.createChooser(shareIntent, "Share"));
       return true;
   }
});

更新

对不起,我错过了原始代码中的一行:

public boolean onPreferenceClick(Preference preference) {

我现在已经更新了。

于 2013-07-19T21:31:38.553 回答
0

您应该遵循 Android 指南来设计首选项:

http://developer.android.com/design/patterns/settings.html

并参考 Api Guide 以获得对 Preference 类的快速但完整的概述:

http://developer.android.com/guide/components/fundamentals.html

也许 ListPreference 是您正在寻找的。

于 2013-07-19T20:45:01.253 回答