Ne peut pas résoudre méthode findViewById(int)'
Que je vais avoir des ennuis avec findViewByid
mais je ne trouve pas où est le problème.
Voici mon FirstFragment
code de classe:
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import java.util.ArrayList;
import java.util.List;
public class FirstFragment extends Fragment {
public static final String TAG = "first";
private WebView mWebView;
ProgressBar progressBar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.secondefragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
OriginalL'auteur Ferhat | 2015-06-02
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour ce faire, dans onCreateView:
Quel est exactement votre erreur? Peut-être poser une nouvelle question?
j'ai remplacé mon oncreateView avec le vôtre, mais cela dit manquantes instruction de retour, j'ai ajouté:
return inflater.inflate(R.layout.secondefragment, container, false);
mais il ouvre la page web sur le téléphone par défaut du navigateur, merci pour votre tempsMise à jour de la réponse à montrer de l'instruction return.
il fixe l'ajout de
mWebView.setWebViewClient(new WebViewClient());
🙂OriginalL'auteur Kristy Welsh
Fragment
ne fournit pas lesfindViewById()
méthode. Ceci est fourni dansActivity
ouView
. Lors de la mise en œuvre d'unFragment
vous n'avez pas de gonfler votre point de vue dansonCreate()
(comme vous le faites normalement dans unActivity
.) Au lieu de cela, vous le faites dansonCreateView()
et vous avez besoin d'utiliser le gonflés racineView
pour trouver l'ID dans la mise en page que vous gonflés.OriginalL'auteur Larry Schiefer
getActivity().findViewById()
œuvres. Cependant, ce n'est pas une bonne pratique car le fragment peut être réutilisés dans une autre activité.La méthode recommandée pour ce qui est de définir un interface.
L'interface doit contenir les méthodes par lesquelles le fragment a besoin de communiquer avec l'activité de son parent.
Puis votre activité implémente cette Interface.
Dans ce fragment de saisir une référence à l'interface.
Appeler une méthode.
De cette façon, le fragment et l'activité sont totalement découplés et toute activité qui met en œuvre ce fragment, est en mesure de joindre ce fragment de lui-même.
OriginalL'auteur Hi I'm Frogatto
Je répondre à la même question dans Android studio d'apprentissage,juste parce que je créer le projet par
Fragment
. ChoisissezBlank Activity
sansFragment
résoudrait.OriginalL'auteur tokinonagare
J'ai trouvé la solution en modifiant targetSdkVersion de 23 à 21
OriginalL'auteur swapnil saha
J'ai eu ce problème quand j'ai téléchargé exemple de projet à partir de github. Ce projet avait
de l'Activité
context
etfindViewById()
étaient de couleur rouge à l'intérieur onCreate() de la méthode. J'ai donc mis à jour les versions ci-dessus pouret erreur s'est résolu.
OriginalL'auteur Mohammed Farhan
Ajouter
getView()
avantfindViewById()
méthode.Comme ceci:
getView().findViewById(R.id.potatoes);
Une question qui ne trouve pas de travail. Et maintenant, j'ai aussi remarqué que mon propre getView() ne fonctionne pas.
OriginalL'auteur Vraces
getActivity().findViewById()
Cela fonctionne il supprime la couleur rouge de findviewby id et il ne marche pas dire impossible de résoudre un symbole, mais quand je mets un colin à la fin de l'intégralité de la déclaration est souligné et il dit inaccessible déclaration.
barChart =(BarChart)getActivity().findViewById(R. id.barchart);
Je fais également ce fragment.
OriginalL'auteur Harry Yo
C'est comment vous pouvez résoudre le problème:
OriginalL'auteur kutty