ListView mit Nutzereingaben während Laufzeit befüllen

  • 3 Antworten
  • Letztes Antwortdatum
K

Kenelope

Neues Mitglied
0
Hallo Leute,

habe mir mal ListViews und Spinners angeschaut. Beide kann man mit Hilfe einer ArrayRessource oder eines Adapters befüllen, was ich auch soweit verstehe (oder auch nicht^^). Aber wie kann man die beiden wärend der Laufzeit befüllen? z. B. hat ein Nutzer gerade sein Android-Phone in der Hand und füllt die Liste (ListView oder Spinner) mit Daten (durch Eingabe über die Tastatur) wärend der Laufzeit.
Ich möchte eine Anwendung schreiben die eine Merkliste realisiert, die man zur Laufzeit durch Nutzereingaben befüllen kann, mit einem Eingabefeld in der nächsten leeren Zeile (was erstmal unwichtig ist).
Ich denke ich habe das mit den ArrayRessource und Adaptern nicht vollständig verstanden, oder gibt es noch eine andere Methode, die mir dies ermöglicht?

hier mal mein Ansatz wie man den Adapter im Sourcecode füllt:
Code:
package com.example.myeinkaufsliste;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.util.ArrayList;  
import java.util.Arrays;  
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.ArrayAdapter;  
import android.widget.EditText;
import android.widget.ListView;  
  
public class MainActivity extends Activity {  
    
  private ListView mainListView ;  
  private ArrayAdapter<String> adapter ;  
    
  /** Called when the activity is first created. */  
  @Override  
  public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main);
    
    EditText editText = (EditText) findViewById(R.id.eingabeEditText);
    String eingabe = editText.getText().toString();
      
    // Find the ListView resource.   
    mainListView = (ListView) findViewById(R.id.mainListView);  
  
    // Create and populate a List of planet names.  
    String[] foods = new String[] {};    
    ArrayList<String> foodList = new ArrayList<String>();  
    foodList.addAll(Arrays.asList(foods));  
      
    // Create ArrayAdapter using the planet list.  
    adapter = new ArrayAdapter<String>(this, R.layout.simplerow, foodList);  
      
    // Add more planets. If you passed a String[] instead of a List<String>   
    // into the ArrayAdapter constructor, you must not add more items.   
    // Otherwise an exception will occur.  
    adapter.add("Wurst");  
    adapter.add("Käse");  
    adapter.add("Fisch" ;  
    adapter.add("Fleisch");  
    adapter.add("Milch");  
      
    // Set the ArrayAdapter as the ListView's adapter.  
    mainListView.setAdapter(adapter);        
  }  
}
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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    
    <EditText
        android:id="@+id/eingabeEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    
    <ListView
        android:id="@+id/mainListView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</RelativeLayout>
 
und
 
<TextView xmlns:android="http://schemas.android.com/apk/res/android"  
 android:id="@+id/rowTextView"   
 android:layout_width="fill_parent"   
 android:layout_height="wrap_content"  
 android:padding="10dp"  
 android:textSize="16sp" >  
</TextView>

Kann mir da jemand weiterhelfen?

Vielen Dank im Vorraus!

Kenelope
 
Du kannst während der Laufzeit den arrayadapter neu setzen. Speziell bei listview muss darauf geachtet werden das man die Methode notificationDataChange (so aehnlich muesste die Methode heißen) setzt ...


Sent from my iPhone using Tapatalk
 
Hi, Danke.
Habs "hardcodiert" gemacht.
Hab aber noch ein Problem wenn ich das ganze per Toast ausgeben will.
Code:
package com.example.myeinkaufsliste;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import java.util.ArrayList;  
import java.util.Arrays;  
import android.app.Activity;  
import android.content.Intent;
import android.os.Bundle;  
import android.widget.ArrayAdapter;  
import android.widget.EditText;
import android.widget.ListView;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;
  
public class MainActivity extends Activity{  
    
  /** Called when the activity is first created. */  
  @Override  
  public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main);
    
    
  AutoCompleteTextView textView1 = (AutoCompleteTextView) findViewById(R.id.textView1);
  AutoCompleteTextView textView2 = (AutoCompleteTextView) findViewById(R.id.textView2);
  AutoCompleteTextView textView3 = (AutoCompleteTextView) findViewById(R.id.textView3);
  AutoCompleteTextView textView4 = (AutoCompleteTextView) findViewById(R.id.textView4);
  AutoCompleteTextView textView5 = (AutoCompleteTextView) findViewById(R.id.textView5);
  AutoCompleteTextView textView6 = (AutoCompleteTextView) findViewById(R.id.textView6);
  AutoCompleteTextView textView7 = (AutoCompleteTextView) findViewById(R.id.textView7);
  AutoCompleteTextView textView8 = (AutoCompleteTextView) findViewById(R.id.textView8);
  AutoCompleteTextView textView9 = (AutoCompleteTextView) findViewById(R.id.textView9);
  AutoCompleteTextView textView10 = (AutoCompleteTextView) findViewById(R.id.textView10);
  AutoCompleteTextView textView11 = (AutoCompleteTextView) findViewById(R.id.textView11);
  AutoCompleteTextView textView12 = (AutoCompleteTextView) findViewById(R.id.textView12);
  AutoCompleteTextView textView13 = (AutoCompleteTextView) findViewById(R.id.textView13);
  AutoCompleteTextView textView14 = (AutoCompleteTextView) findViewById(R.id.textView14);
  AutoCompleteTextView textView15 = (AutoCompleteTextView) findViewById(R.id.textView15);
  AutoCompleteTextView textView16 = (AutoCompleteTextView) findViewById(R.id.textView16);
  AutoCompleteTextView textView17 = (AutoCompleteTextView) findViewById(R.id.textView17);
  AutoCompleteTextView textView18 = (AutoCompleteTextView) findViewById(R.id.textView18);
  AutoCompleteTextView textView19 = (AutoCompleteTextView) findViewById(R.id.textView19);
  AutoCompleteTextView textView20 = (AutoCompleteTextView) findViewById(R.id.textView20);
  
  String[] foods = getResources().getStringArray(R.array.foodArray);
  ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, foods);
  textView1.setAdapter(adapter1);
  textView2.setAdapter(adapter1);
  textView3.setAdapter(adapter1);
  textView4.setAdapter(adapter1);
  textView5.setAdapter(adapter1);
  textView6.setAdapter(adapter1);
  textView7.setAdapter(adapter1);
  textView8.setAdapter(adapter1);
  textView9.setAdapter(adapter1);
  textView10.setAdapter(adapter1);
  textView11.setAdapter(adapter1);
  textView12.setAdapter(adapter1);
  textView13.setAdapter(adapter1);
  textView14.setAdapter(adapter1);
  textView15.setAdapter(adapter1);
  textView16.setAdapter(adapter1);
  textView17.setAdapter(adapter1);
  textView18.setAdapter(adapter1);
  textView19.setAdapter(adapter1);
  textView20.setAdapter(adapter1);
  
  ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked);
  adapter2.add(textView1.getText().toString());
  adapter2.add(textView2.getText().toString());
  adapter2.add(textView3.getText().toString());
  adapter2.add(textView4.getText().toString());
  adapter2.add(textView5.getText().toString());
  adapter2.add(textView6.getText().toString());
  adapter2.add(textView7.getText().toString());
  adapter2.add(textView8.getText().toString());
  adapter2.add(textView9.getText().toString());
  adapter2.add(textView10.getText().toString());
  adapter2.add(textView11.getText().toString());
  adapter2.add(textView12.getText().toString());
  adapter2.add(textView13.getText().toString());
  adapter2.add(textView14.getText().toString());
  adapter2.add(textView15.getText().toString());
  adapter2.add(textView16.getText().toString());
  adapter2.add(textView17.getText().toString());
  adapter2.add(textView18.getText().toString());
  adapter2.add(textView19.getText().toString());
  adapter2.add(textView20.getText().toString());
  }
  
  public void clicked(View view)
  {
	  AutoCompleteTextView textView1 = (AutoCompleteTextView) findViewById(R.id.textView1);
	  AutoCompleteTextView textView2 = (AutoCompleteTextView) findViewById(R.id.textView2);
	  AutoCompleteTextView textView3 = (AutoCompleteTextView) findViewById(R.id.textView3);
	  AutoCompleteTextView textView4 = (AutoCompleteTextView) findViewById(R.id.textView4);
	  AutoCompleteTextView textView5 = (AutoCompleteTextView) findViewById(R.id.textView5);
	  AutoCompleteTextView textView6 = (AutoCompleteTextView) findViewById(R.id.textView6);
	  AutoCompleteTextView textView7 = (AutoCompleteTextView) findViewById(R.id.textView7);
	  AutoCompleteTextView textView8 = (AutoCompleteTextView) findViewById(R.id.textView8);
	  AutoCompleteTextView textView9 = (AutoCompleteTextView) findViewById(R.id.textView9);
	  AutoCompleteTextView textView10 = (AutoCompleteTextView) findViewById(R.id.textView10);
	  AutoCompleteTextView textView11 = (AutoCompleteTextView) findViewById(R.id.textView11);
	  AutoCompleteTextView textView12 = (AutoCompleteTextView) findViewById(R.id.textView12);
	  AutoCompleteTextView textView13 = (AutoCompleteTextView) findViewById(R.id.textView13);
	  AutoCompleteTextView textView14 = (AutoCompleteTextView) findViewById(R.id.textView14);
	  AutoCompleteTextView textView15 = (AutoCompleteTextView) findViewById(R.id.textView15);
	  AutoCompleteTextView textView16 = (AutoCompleteTextView) findViewById(R.id.textView16);
	  AutoCompleteTextView textView17 = (AutoCompleteTextView) findViewById(R.id.textView17);
	  AutoCompleteTextView textView18 = (AutoCompleteTextView) findViewById(R.id.textView18);
	  AutoCompleteTextView textView19 = (AutoCompleteTextView) findViewById(R.id.textView19);
	  AutoCompleteTextView textView20 = (AutoCompleteTextView) findViewById(R.id.textView20);
	  
	  String myTastyToast = new String("");
	  myTastyToast.concat(textView1.getText().toString() + "/n");
	  myTastyToast.concat(textView2.getText().toString() + "/n");
	  myTastyToast.concat(textView3.getText().toString() + "/n");
	  myTastyToast.concat(textView4.getText().toString() + "/n");
	  myTastyToast.concat(textView5.getText().toString() + "/n");
	  myTastyToast.concat(textView6.getText().toString() + "/n");
	  myTastyToast.concat(textView7.getText().toString() + "/n");
	  myTastyToast.concat(textView8.getText().toString() + "/n");
	  myTastyToast.concat(textView9.getText().toString() + "/n");
	  myTastyToast.concat(textView10.getText().toString() + "/n");
	  myTastyToast.concat(textView11.getText().toString() + "/n");
	  myTastyToast.concat(textView12.getText().toString() + "/n");
	  myTastyToast.concat(textView13.getText().toString() + "/n");
	  myTastyToast.concat(textView14.getText().toString() + "/n");
	  myTastyToast.concat(textView15.getText().toString() + "/n");
	  myTastyToast.concat(textView16.getText().toString() + "/n");
	  myTastyToast.concat(textView17.getText().toString() + "/n");
	  myTastyToast.concat(textView18.getText().toString() + "/n");
	  myTastyToast.concat(textView19.getText().toString() + "/n");
	  myTastyToast.concat(textView20.getText().toString() + "/n");
	  Toast.makeText(MainActivity.this, myTastyToast, Toast.LENGTH_SHORT).show();
  }
}
Ich glaub das Problem ist das ich auf die leeren AutoCompleteTextViews zugreife, aber keine Ahnung wie ich das behebe. Kann mir da jemand weiterhelfen?

Viele Grüße

Kenelope
 
Ja was das Problem jetzt? Wird's nicht angezeigt oder was? Dann prüfe doch ob Inhalt vorhanden ist ...


Sent from my iPhone using Tapatalk
 
Zurück
Oben Unten