Hallo liebe community,
ich henge an einem.... naja ich denke schon simplen problem, welches ich einfach zu dumm bin es zu lösen. Bin bereits seit heute morgen dabei und komme da einfach nicht weiter. Jetzt bitte ich doch um eure professionelle meinung.
ALso ich arbeite gerade an einer App die zwei fragmente beinhaltet, sozusagen zwei sichten für die nutzer bietet.
Auf einem Fragment (also mit der Klasse public class Fragment_A extends Fragment) soll eine Custom ListView angezeigt werden. Eine Einzelne Zeile der ListView beinhaltet eine imageView und zwei Textviews. so wie in diesem tutorial:
die einträge in die Listview allerdings erfolgt über einen button welches ein Dialogbox aufruft und den nutzer die eingabemöglichkeiten für die Textviews bietet.
Beispiel: Dialogbox wird geöffnet- Nutzer kann name und Alter eintragen und schließlich auf Ok-Button klicken.
Die eingegebenen Daten sollen dann halt in der Liste nacheinander angezeigt werden. Das optische habe ich zwar dank des tutorials hinbekommen, jedoch wenn ich einen eintrag gemacht habe und einen neuen machen möchte, wird der alte durch den neuen ersetzt anstatt alles schön untereinander zu reihen.
Also wenn ich ohne diesen custom view bzw. custom view-adapter arbeite dann klappt das.
so sieht die fragment klasse aus:
public class Fragment_A extends Fragment {
public static String KEY_TITLE = null;
public static CharSequence KEY_BETRAG = null;
public static String ARG_SECTION_NUMBER = "section_number";
ImageButton iBtn;
ListView listView;
TextView textView;
MyListAdapter myListAdapter;
int i = 0;
public Fragment_A(int position) {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_a, container, false);
iBtn = (ImageButton)v.findViewById(R.id.imageBtn1);
listView = (ListView)v.findViewById(R.id.listView1);
textView = (TextView)v.findViewById(R.id.textView1);
iBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.dialog1);
dialog.setTitle("Eintrag");
dialog.setCancelable(false);
final EditText name = (EditText)dialog.findViewById(R.id.editText_name);
final EditText betrag = (EditText)dialog.findViewById(R.id.editText_betrag);
Button abbrechen = (Button)dialog.findViewById(R.id.button1);
Button hinzufügen = (Button)dialog.findViewById(R.id.button2);
hinzufügen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
List<String> parameter = new ArrayList<String>();
KEY_TITLE = name.getText().toString();
KEY_BETRAG = betrag.getText().toString();
parameter.add((String) KEY_TITLE);
parameter.add((String) KEY_BETRAG);
listView.setAdapter(new MyListAdapter(getActivity()));
dialog.dismiss();
}
});
abbrechen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
return v;
}
}
Alles anzeigen
und der Adapter für die ListView
public class MyListAdapter extends BaseAdapter {
ArrayList<SingeRowEntities> list;
Context context;
public MyListAdapter(Context c) {
context = c;
list = new ArrayList<SingeRowEntities>();
String name = Fragment_A.KEY_TITLE;
String betrag = (String) Fragment_A.KEY_BETRAG;
int image = R.drawable.ic_launcher;
list.add(new SingeRowEntities(name, betrag, image));
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int i) {
// TODO Auto-generated method stub
return i;
}
@Override
public long getItemId(int i) {
// TODO Auto-generated method stub
return i;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View zeile = inflater.inflate(R.layout.list_zeile, null);
TextView title = (TextView)zeile.findViewById(R.id.title); //title - name
TextView beschreibung = (TextView)zeile.findViewById(R.id.beschreibung); // betrag
ImageView image = (ImageView)zeile.findViewById(R.id.list_image); // image
SingeRowEntities temp = list.get(position);
title.setText(temp.name);
beschreibung.setText(temp.betrag);
image.setImageResource(temp.image);
return zeile;
}
}
public class SingeRowEntities {
public String name;
public String betrag;
public int image;
public SingeRowEntities(String name, String betrag2, int image) {
super();
this.name = name;
this.betrag = betrag2;
this.image = image;
}
}
Alles anzeigen
wo mache ich hier den fehler?? Wäre super korrekt wenn ihr mir weiter helfen könntet.