Problem Sloverd ich versuchte Listenansicht in einem Fragment zu implementieren, ohne listfragment implentingAndroid-Implementierung ListVIEW in Fragment mit Base-Adapter, was mache ich falsch?
und eine eigene Adapter ohne irgendeine ArrayAdapter erstreckt oder ListAdapter (nur Fragment reicht) ..
(erstreckt sich nur BaseAdapter)
Mein folgender Code zeigt keinen Fehler, aber Listview wird nicht im Fragment angezeigt. Ich verwende einen benutzerdefinierten Adapter, um zwei editierte Texte zusammen anzuzeigen. Beim Debuggen kann ich sehen, dass der Adapter eine Liste in der Ansicht sendet, aber listview.setadapter() keine Daten bindet Kann mir jemand sagen, was ich falsch mache? Ich habe versucht, hier eine ähnliche Lösung zu finden, aber kein Glück. Ich würde mich über Rückmeldungen sehr freuen oder auf ein ähnliches Problem hinweisen. 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;
}
}
Individuelle Adapter
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 hat es endlich gelöst, weiß aber nicht, warum ich diese trennen muss. trotzdem danke bro –
@IntelliJA danke für die zeit, schätze es wirklich :) und sehe die lösung, du hattest recht, schlampiger fehler ... haha –
Freut mich zu sehen, dass du das gelöst hast. –