2013-07-19 3 views
0

UPDATEПоказать Chooser из PreferenceActivity XML Android

Я получаю эту ошибку:

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); 
    } 

} 

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

Есть ли способ показать андроид-выбор, когда e пользователь нажимает на предпочтение андроида?

Или можно позвонить по этому коду из предпочтения 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")); 

ответ

0

Вы должны следовать Android рекомендации по проектированию предпочтений:

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

и обратитесь к руководству Api для быстрого, но полного обзора класса предпочтений:

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

Возможно, ListPreference - это то, что вы ищете.

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; 
    } 
}); 

UPDATE

Я сожалею, что я пропустил строку в моем исходном коде:

public boolean onPreferenceClick(Preference preference) { 

Я обновил его сейчас.

+0

Спасибо, я отредактировал мое сообщение, у меня проблема с вашим кодом. Пожалуйста, посмотрите мой обновленный пост. – wawanopoulos

+0

Обновлено, у всех нас есть ошибки: – JustinMorris