problème Sloverd, je tente de mettre en œuvre listview dans un fragment sans implenting listfragmentandroid- Implémentation de ListVIew en Fragment à l'aide de l'adaptateur de base, qu'est-ce que je fais de mal?
(étend tout fragment)
et un adaptateur personnalisé sans étendre toute ArrayAdapter ou ListAdapter .. (Étend simplement BaseAdapter)
Mon code suivant ne montre aucune erreur mais listview n'apparaît pas dans le fragment. J'utilise un adaptateur personnalisé pour montrer deux edittext ensemble. pendant le débogage je peux voir l'adaptateur envoyant une liste dans la vue mais listview.setadapter() ne liant aucune donnée Quelqu'un peut-il me dire ce que je fais mal? J'ai essayé de trouver une solution similaire ici mais pas de chance. J'apprécierais grandement tout commentaire ou pointant vers un problème similaire comme celui-ci. Fragment:
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
public class ResultFragment extends Fragment {
private DBHelper dbHelper=null;
ArrayList<MedicineModel> medicineModelList=new ArrayList<MedicineModel>();
String selectedData="";
CustomAdapterBrandResult adapter;
ListView listView;
public ResultFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_result, container, false);
listView= (ListView) view.findViewById(R.id.resultList);
TextView textView=(TextView)view.findViewById(R.id.selected_text);
Bundle bundle=getArguments();
if(bundle!=null){
textView.setText(bundle.getString("selected_data"));
selectedData=(bundle.getString("selected_data"));
}
dbHelper=new DBHelper(this.getActivity());
medicineModelList= dbHelper.getAllUsingBrandName(selectedData);
adapter=new CustomAdapterBrandResult(getActivity(), medicineModelList);
listView.setAdapter(adapter);
return view;
}
}
Adaptateur personnalisé
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
public class CustomAdapterBrandResult extends BaseAdapter {
private Context mcontext;
private ArrayList<MedicineModel> medicineModelList;
public CustomAdapterBrandResult(Context mcontext, ArrayList<MedicineModel> medicineModelList) {
this.mcontext = mcontext;
this.medicineModelList = medicineModelList;
}
@Override
public int getCount() {
return medicineModelList.size();
}
@Override
public Object getItem(int position) {
return medicineModelList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=View.inflate(mcontext,R.layout.custom_layout_brand_result,null);
final TextView textViewBrand=(TextView)view.findViewById(R.id.textView2BrandName);
final TextView textViewManufacture=(TextView)view.findViewById(R.id.textView3Manufacture);
textViewBrand.setText(medicineModelList.get(position).getBrandName());
textViewManufacture.setText(medicineModelList.get(position).getNameoftheManufacturer());
return view;
}
}
@ Mikerizzo l'a finalement résolu mais je ne sais toujours pas pourquoi je dois les séparer. de toute façon merci bro –
@IntelliJA merci pour le temps, vraiment l'apprécier :) et voir la solution, vous aviez raison, erreur bâclée ... haha –
heureux de vous voir résolu codage Happy! –