2017-03-14 4 views
0

MainActivity ist meine Klasse, in der der Benutzer die Elemente aus der Listenansicht auswählt. Ich verwende den SetOnItemClickListener, um die ausgewählten Elemente abzurufen. Von diesem Punkt an weiß ich nicht, wie ich es an die nächste Aktivität weiterleiten kann. Muss ich die Parcelable-Schnittstelle verwenden? oder gibt es einen anderen Weg nur durch Absichten.Übergeben ausgewählter Elemente aus ListView an eine andere Aktivität

public class MainActivity erstreckt AppCompatActivity implementiert Parcel {

ArrayList<String> shoppingList; 
ArrayAdapter adapter; 
ListView lv; 

Arraylist ausgewählt werden;

protected MainActivity(Parcel in) { 

} 

public static final Creator<MainActivity> CREATOR = new Creator<MainActivity>() { 
    @Override 
    public MainActivity createFromParcel(Parcel in) { 
     return new MainActivity(in); 
    } 

    @Override 
    public MainActivity[] newArray(int size) { 
     return new MainActivity[size]; 
    } 
}; 

@Override 
public int describeContents() { 
    return 0; 
} 

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeStringList(shoppingList); 
} 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Example of a call to a native method 

    shoppingList = new ArrayList<>(); 
    Collections.addAll(shoppingList, "Eggs", "Yogurt", "Milk", "Bananas", "Apples", "Tide with bleach", "Cascade","candy","Dental Floss","Toothpaste"); 
    shoppingList.addAll(Arrays.asList("ice cream","hand lotion")); 


    adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, shoppingList); 

    lv = (ListView) findViewById(R.id.listview); 
    lv.setAdapter(adapter); 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int Position, long id) { 
      Toast.makeText(MainActivity.this, " You Selected "+((TextView) view).getText() , Toast.LENGTH_SHORT).show(); 
      selected = new ArrayList(); 
      Collections.addAll(selected,((TextView) view).getText()); 

      System.out.println(((TextView) view).getText()); 
     } 
    }); 

} 

public void checkout(View view){ 
    Intent intent = new Intent(this,SelectedItemsControl.class); 

    startActivity(intent); 
} 

Antwort

0
public void checkout(View view){ 
    Intent intent = new Intent(this,SelectedItemsControl.class); 
    intent.putExtra("selected_list", selectedList) 
    startActivity(intent); 
    } 

In Ihrer Empfangsaktivität müssen Sie tun, um:

Intent i = getIntent(); 
ArrayList<String> selectedList = i.getStringArrayListExtra("selected_list"); 

Artikel hinzufügen in der Liste wie

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    shoppingList = new ArrayList<>(); 
    Collections.addAll(shoppingList, "Eggs", "Yogurt", "Milk", "Bananas", "Apples", "Tide with bleach", "Cascade","candy","Dental Floss","Toothpaste"); 
    shoppingList.addAll(Arrays.asList("ice cream","hand lotion")); 
    adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, shoppingList); 

    lv = (ListView) findViewById(R.id.listview); 
    lv.setAdapter(adapter); 
    selectedList = new ArrayList(); 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int Position, long id) { 
      selectedList.add(adapter.getItem(position));] 
     } 
    }); 

} 
+0

tun fallowing werde ich direkt auf sie, danke – Evan

+0

kleines Missverständnis hier, "shoppingList" ist die erste Liste von Objekten, die die ListView in der ersten Aktivität füllt mein Ziel ist es, die ausgewählten Gegenstände zu erhalten b y Der Benutzer, den ich aus dem OnItemClick-Listener abrufe, sind diese ausgewählten Elemente, die ich an die nächste Aktivität senden möchte. Kannst du mir dabei helfen? – Evan

+0

Erstellen Sie eine neue Liste der ausgewählten Artikel und fügen Sie die Elemente aus der Einkaufsliste und senden Sie dann –

Verwandte Themen