- Posts de Forum 2
20 nov. 2017 à 16:35:12 via site
20 nov. 2017 16:35:12 via site
Bonjour à tous.
Je me suis lancé il y'a peu dans le codage d'android.
Je suis des cours en ligne et j'ai un problème dans un de mes exercices.
En effet le prof nous à donné un .jar remplis de fakenews en html.
le but est d'utiliser un RecyclerView pour afficher la liste et lors d'un toucher sur l'article il faut l'afficher dans un webview.
j'ai réussis à coder afin d'afficher la liste mais lors du OnClickListener mon appli ce ferme. je n'arrive pas à ouvrir la webview
Code de mon MainAcivity :
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView rv = (RecyclerView) findViewById(R.id.recyclerView);
rv.setLayoutManager(new LinearLayoutManager(this));
MyAdapter adapter = new MyAdapter();
rv.setAdapter(adapter);
}
}
code de MyAdapter :
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.FakeNewsViewHolder> {
private final List<FakeNews> _list = FakeNewsList.all;
@Override
public int getItemCount() {
return _list.size();
}
@Override
public FakeNewsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view =LayoutInflater.from(parent.getContext()).inflate(R.layout.list_cell, parent, false);
return new FakeNewsViewHolder(view);
}
@Override
public void onBindViewHolder(FakeNewsViewHolder holder, int position) {
holder.bind(_list.get(position));
}
public class FakeNewsViewHolder extends RecyclerView.ViewHolder {
private final TextView _title;
private final TextView _htlmContent;
public FakeNewsViewHolder(View view) {
super(view);
_title = (TextView) view.findViewById(R.id.name);
_htlmContent = (TextView) view.findViewById(R.id.content);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WebView webView = (WebView) view.findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadDataWithBaseURL(null,_htlmContent.getText().toString(),"text/html","utf_8",null);
if (Build.VERSION.SDK_INT >= 11) {
webView.setBackgroundColor(0x01000000);
} else {
webView.setBackgroundColor(0x00000000);
}
}
});
}
public void bind(FakeNews article) {
_title.setText(article.title);
_htlmContent.setText(article.htmlContent);
}
}
}
Le problème ce situant au setOnClickListener
j'ai pas mal chercher sur le net mais j'ai pas reussis à trouver des solution.
des idées ?
Merci bien
Contenu éditorial recommandé
Avec ton accord, un contenu externe est chargé ici.
En cliquant sur le bouton ci-dessus, tu acceptes que des contenus externes soient affichés. Des données personnelles peuvent alors être transmises à des fournisseurs tiers. Tu trouveras plus d'informations à ce sujet dans notre Déclaration de protection de données.