J'ai créé une entrée de préférence à l'intérieur de l'écran de préférence, qui ressemble à ceci: ici, je définit un Les deux approches fonctionnent bien, donc je peux voir mon ressource à droite de l'élément de préférence.
Cependant, je ne peux pas accéder à cette ressource (aView) pour modifier ses propriétés sur l'exécution. p> Neu à la définition manuelle ID de ressource, gonflez-la de la ressource ou Quelqu'un est-il rencontré dans le même problème? Toutes idées sur la façon de modifier Voici une question similaire, mais elle n'a pas été répondue p> widgetlayout code> ressource, qui doit être montré à la droite de L'élément de préférence (comme une case à cocher pour une préférence de case à cocher). Je peux également définir cette ressource dans le code de mon
préfèceActivit.oncreate () code> comme ceci: p>
FindvevyID CODE> semble fonctionner - J'ai une source de ressource / ressource invalide non trouvée. On dirait que l'activité de préférence gonfle la ressource plusieurs fois plus tard. P>
widgetlayout code> Propriétés de la ressource sur l'exécution? P>
3 Réponses :
Je semble avoir le même problème, et j'ai essayé comme ceci:
personnalisée code> et de remplacement onbindview () code>: h3> xxx pré> 2) ajoutez cette préférence à l'écran XML: h3> xxx pré> préférence_widget_progressbar.xml p> xxx pré > ou appeler SetWidgetLayouTresource () code>. p> 3) Obtenez la barre de progression lorsque Onpereffetreeclick () Code>: H3> if (preference instanceof ProgressBarPreference) {
ProgressBar progressBar = ((ProgressBarPreference) preference).getProgressBar();
// TODO something
}
J'ai une solution de contournement partielle pour JOINAINERO . Si l'objectif est de simplement afficher ou masquer une barre de progression indéterminée dans le widget, l'astuce consiste à définir et à effacer la ressource de mise en page de widget dans le code.
1) Définissez la disposition du widget contenant la barre de progression. Pas besoin d'attribuer un identifiant. préférence_widget_progressar.xml: p> 2) Ne spécifie pas le widget dans paramètres.xml p> 3) lorsque vous Voulez-vous montrer la barre de progression, définissez la ressource de widget sur préférences_widget_progressbar. Pour le nettoyer, définissez-le à 0. L'appel à notifychanged () code> est nécessaire pour mettre à jour l'écran. P>
public void showProgressBar(boolean isVisible) {
// Show or hide the entire widget (which contains only a ProgressBar)
setWidgetLayoutResource(isVisible ? R.layout.preference_widget_progressbar: 0);
notifyChanged(); // Update screen
}
Attribut OnClick, P>
public void onMyKeyClicked(View v) { Toast.makeText(this, "My key widget clicked", Toast.LENGTH_SHORT).show(); }