M
madbert
Neues Mitglied
- 0
Hallo Android-Entwickler,
ich habe vor Kurzem begonnen mich ein wenig mit der App-Programmierung zu beschäftigen und hab bei meinem ersten Projekt einige Fragen, bei denen mir die richtigen Suchbegriffe fehlen um danach zu googln. Verzeiht mir, wenn es ein solchen ähnlichen Beitrag schon gibt.
Zuerst kurz ein paar Informationen:
Informationen zu dem Projekt:
Ich werde jetzt zunächst noch mein derzeitigen Code zeigen, damit ihr euch ein vollständigen Überblick machen könnt und anschließend meine Fragen stellen.
Hier zunächst die XML-File:
Hier die Activity-File:
Mir ist bewusst, dass es bestimmt kein schöner Stil ist und es etwas durcheinander ist. Ich habe deswegen versucht euch ein möglichst großen Einblick zu gewährleisten. Vieles von dem Code ist aus fremden Code-Fetzen (Tutorials) zusammengesetzt und für mich angepasst.
Nun zu dem Problem. Zuvor als ich nur eine Liste, 1 Eingabefeld etc. hatte, war es soweit funktionstüchtig. Ich konnte über das Eingabefeld Items zu dem Array bzw. der Liste hinzufügen und entfernen. Jetzt habe ich versucht einfach ein zweites Listview etc. zu erstellen und den Code zu dublizierung, nur dass ich die Namen angepasst habe. Als Beispiel habe ich für die ListView (links) im Code schon 2 Items hinzugefügt (First-, Second Item). Für die rechte ListView hatte ich als Beispiel "5,60" gesetzt.
Wenn ich die App jetzt starte, sind alle 3 Beispiele in der linken ListView. Meiner Meinung müsste der Fehler bei dem falsch bzw. noch nicht angepassten Adapter für die rechte ListView liegen.
Ich weiß nur nicht was davon der Name, der anzupassen ist und welcher Teil das Objekt "castet" o.ä. . Außerdem funktioniet seitdem ich alles angepasst und versucht habe zu dublizieren auch nicht mehr das Hinzufügen von Items.
Meine Bitte wäre, dass sich Jemand das einmal durchliest, der davon zumindestens mehr versteht als ich es tue. Ich wäre sehr dankbar!
Ein weiteres Problem, was ich noch nicht gelöst habe, ist das Speichern der Daten nach dem Schließen der App. Ich habe schon grob gegooglt und schon Tutorials gefunden wie das z.B. mit dem SharedPrefereces funktionieren soll. Allerdings durchblicke ich es noch nicht ganz und weiß z.B. nicht, ob der Code dafür in die "OnCreate"-Methode mit reingehört oder ob man das irgendwie gesonder über eine andere Methode macht.
Ich hoffe Jemand führt sich den ganzen Text zu Gemüte und kann mir helfen. Ich würde mich sehr darüber freuen!
ich habe vor Kurzem begonnen mich ein wenig mit der App-Programmierung zu beschäftigen und hab bei meinem ersten Projekt einige Fragen, bei denen mir die richtigen Suchbegriffe fehlen um danach zu googln. Verzeiht mir, wenn es ein solchen ähnlichen Beitrag schon gibt.
Zuerst kurz ein paar Informationen:
Ich habe keine Vorkenntnisse in Java und habe auch nicht vor diese Programmiersprache intensiv zu lernen. Ich will mein kleines Projekt für eine simple und private App nur verwirklichen. Ich habe jedoch allgemeine Kenntnisse in der Programmierung (z.B. Python, VBS, usw.)
Ich arbeite mit Android Studio 1.3.2 falls diese Information benötigt wird, aber nach meinem Wissen ist es das gleiche wie mit Eclipse. Man hat dort auch seine XML-File und seine Activity-File.
Ich arbeite mit Android Studio 1.3.2 falls diese Information benötigt wird, aber nach meinem Wissen ist es das gleiche wie mit Eclipse. Man hat dort auch seine XML-File und seine Activity-File.
Informationen zu dem Projekt:
Meine App ist eigentlich recht simpel bzw. wüsste ich grob wie ich das in anderen Programmiersprachen verwirklichen könnte. Es sollen vorerst 2 Listen nebeneinander sein. Unterhalb der Listen jeweils ein Eingabefeld und ein Button, sodass in das Eingabefeld Werte eingegeben werden können und diese dann jeweils in der rechten oder linken Liste erscheinen. Letztendlich werde ich in Zukunft dann daran arbeiten mir noch ein weiteres Ausgabefeld zu erstellen, dass die Summe aller Werte in den Arrays (linke oder rechte Liste) ausgibt.
Ich werde jetzt zunächst noch mein derzeitigen Code zeigen, damit ihr euch ein vollständigen Überblick machen könnt und anschließend meine Fragen stellen.
Hier zunächst die XML-File:
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listleft"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"
android:layout_above="@+id/edittextleft"
android:layout_alignRight="@+id/edittextleft"
android:layout_alignEnd="@+id/edittextleft" />
//android:layout_toLeftOf="@+id/btnleft"
//android:layout_toStartOf="@+id/btnleft"
//android:layout_above="@+id/edittextleft" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/edittextleft"
android:hint="Enter a new item"
android:layout_above="@+id/btnleft"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Item"
android:id="@+id/btnleft"
android:onClick="AddItemleft"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listright"
android:layout_alignWithParentIfMissing="false"
android:layout_alignParentStart="false"
android:layout_marginLeft="200dp"
android:layout_marginBottom="100dp"
android:smoothScrollbar="false" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/edittextright"
android:layout_alignBottom="@+id/edittextleft"
android:layout_alignLeft="@+id/listright"
android:layout_alignStart="@+id/listright"
android:hint="Enter new price" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Item"
android:id="@+id/btnright"
android:onClick="Additemright"
android:layout_alignBottom="@+id/btnleft"
android:layout_alignRight="@+id/edittextright"
android:layout_alignEnd="@+id/edittextright" />
</RelativeLayout>
Hier die Activity-File:
Code:
public class MainActivity extends AppCompatActivity {
// Definiere Variablen
private ArrayList<String> items;
private ArrayAdapter<String> itemsAdapter;
private ListView listleft;
private ArrayList<String> itemsright;
private ArrayAdapter<String> itemsAdapterright;
private ListView listright;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Verbindet Variablen mit dem Objekt und verbindet den Adapter
listleft = (ListView) findViewById(R.id.listleft);
items = new ArrayList<String>();
itemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
listleft.setAdapter(itemsAdapter);
items.add("First Item");
items.add("Second Item");
setupListViewListener();
listright = (ListView) findViewById(R.id.listright);
itemsright = new ArrayList<String>();
itemsAdapterright = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, itemsright);
listright.setAdapter(itemsAdapterright);
items.add("5,60");
setupListViewListener();
}
// LEFT Attaches a long click listener to the listview
private void setupListViewListener() {
listleft.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter,
View item, int pos, long id) {
// Remove the item within array at position
items.remove(pos);
// Refresh the adapter
itemsAdapter.notifyDataSetChanged();
// Return true consumes the long click event (marks it handled)
return true;
}
});
}
// RIGHT
private void setupListViewListenerRight() {
listleft.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter,
View item, int pos, long id) {
// Remove the item within array at position
items.remove(pos);
// Refresh the adapter
itemsAdapter.notifyDataSetChanged();
// Return true consumes the long click event (marks it handled)
return true;
}
});
}
// BTN LEFT Neue Methode für den Button
public void onAddItem(View v) {
EditText etNewItem = (EditText) findViewById(R.id.edittextleft);
String itemText = etNewItem.getText().toString();
itemsAdapter.add(itemText);
etNewItem.setText("");
}
// BTN RIGHT
public void Additemright (View v) {
EditText edittextright = (EditText) findViewById(R.id.edittextright);
String itemsTextright = edittextright.getText().toString();
edittextright.setText("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
Mir ist bewusst, dass es bestimmt kein schöner Stil ist und es etwas durcheinander ist. Ich habe deswegen versucht euch ein möglichst großen Einblick zu gewährleisten. Vieles von dem Code ist aus fremden Code-Fetzen (Tutorials) zusammengesetzt und für mich angepasst.
Nun zu dem Problem. Zuvor als ich nur eine Liste, 1 Eingabefeld etc. hatte, war es soweit funktionstüchtig. Ich konnte über das Eingabefeld Items zu dem Array bzw. der Liste hinzufügen und entfernen. Jetzt habe ich versucht einfach ein zweites Listview etc. zu erstellen und den Code zu dublizierung, nur dass ich die Namen angepasst habe. Als Beispiel habe ich für die ListView (links) im Code schon 2 Items hinzugefügt (First-, Second Item). Für die rechte ListView hatte ich als Beispiel "5,60" gesetzt.
Wenn ich die App jetzt starte, sind alle 3 Beispiele in der linken ListView. Meiner Meinung müsste der Fehler bei dem falsch bzw. noch nicht angepassten Adapter für die rechte ListView liegen.
Code:
itemsright = new ArrayList<String>();
itemsAdapterright = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, itemsright);
Ich weiß nur nicht was davon der Name, der anzupassen ist und welcher Teil das Objekt "castet" o.ä. . Außerdem funktioniet seitdem ich alles angepasst und versucht habe zu dublizieren auch nicht mehr das Hinzufügen von Items.
Meine Bitte wäre, dass sich Jemand das einmal durchliest, der davon zumindestens mehr versteht als ich es tue. Ich wäre sehr dankbar!
Ein weiteres Problem, was ich noch nicht gelöst habe, ist das Speichern der Daten nach dem Schließen der App. Ich habe schon grob gegooglt und schon Tutorials gefunden wie das z.B. mit dem SharedPrefereces funktionieren soll. Allerdings durchblicke ich es noch nicht ganz und weiß z.B. nicht, ob der Code dafür in die "OnCreate"-Methode mit reingehört oder ob man das irgendwie gesonder über eine andere Methode macht.
Ich hoffe Jemand führt sich den ganzen Text zu Gemüte und kann mir helfen. Ich würde mich sehr darüber freuen!