J'essaie de fournir une vue modifiée pour un clavier Android personnalisé en mode plein écran. Par conséquent j'essaye de remplacer la vue d'extrait. Dans la documentation, j'ai trouvé la méthode suivante: setExtractView(View view) - donc je suppose que c'est un appel d'API publique. Cependant, comme vous pouvez le voir à partir du code source du système Android (collé ci-dessous), il me permet d'accéder uniquement à une vue qui a des éléments de vue avec des ID dans l'espace com.android.internal. *. Sinon, bien sûr, j'obtiendrai une exception NullPointerException.Android: InputMethodService comment définir une vue avec setExtractView (vue vue)?
public void setExtractView(View view) {
mExtractFrame.removeAllViews();
mExtractFrame.addView(view, new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
mExtractView = view;
if (view != null) {
mExtractEditText = (ExtractEditText)view.findViewById(
com.android.internal.R.id.inputExtractEditText);
mExtractEditText.setIME(this);
mExtractAction = (Button)view.findViewById(
com.android.internal.R.id.inputExtractAction);
if (mExtractAction != null) {
mExtractAccessories = (ViewGroup)view.findViewById(
com.android.internal.R.id.inputExtractAccessories);
}
startExtractingText(false);
} else {
mExtractEditText = null;
mExtractAccessories = null;
mExtractAction = null;
}
}
Alors, je me demande, est-ce un bug, que cette méthode est au sein de l'API publique ou sinon, comment puis-je créer une vue personnalisée avec ID dans le com.android.internal. * Espace ?
Mise à jour: Nevermind vient de trouver this. Va vérifier plus tard et rapport si cela a fonctionné.
Avez-vous déjà eu ce travail? – Samuel
Merci Samuel de me le rappeler. Je viens de poster ma solution. – znq