Reputation: 301
Ok so here's what I've got so far:
public class Perks extends ListActivity {
ArrayList<Item> items = new ArrayList<Item>();
ArrayList<Item> entry = new ArrayList<Item>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
items.add(new SectionItem("Tier 1"));
items.add(new EntryItem("Flak Jacket"));
items.add(new EntryItem("Ghost"));
items.add(new EntryItem("Blind Eye"));
items.add(new EntryItem("Hardline"));
items.add(new EntryItem("Lightweight"));
items.add(new SectionItem("Tier 2"));
items.add(new EntryItem("Hard Wired"));
items.add(new EntryItem("Scavenger"));
items.add(new EntryItem("Cold Blooded"));
items.add(new EntryItem("Toughness"));
items.add(new EntryItem("Fast Hands"));
items.add(new SectionItem("Tier 3"));
items.add(new EntryItem("Engineer"));
items.add(new EntryItem("Dead Silence"));
items.add(new EntryItem("Extreme Conditioning"));
items.add(new EntryItem("Tactical Mask"));
items.add(new EntryItem("Awareness"));
items.add(new EntryItem("Dexterity"));
EntryAdapter adapter = new EntryAdapter(this, items);
entry.add(new SectionItem("Tier 1"));
entry.add(new EntryItem("Take less explosive damage."));
entry.add(new EntryItem("Cannot be detected by enemy UAV while moving."));
entry.add(new EntryItem("Unaffected by AI-controlled perks."));
entry.add(new EntryItem("Receive bonus score points."));
entry.add(new EntryItem("Move faster, take no damage from falling."));
entry.add(new SectionItem("Tier 2"));
entry.add(new EntryItem("Immune to counter-UAV and enemy EMPs."));
entry.add(new EntryItem("Replenish ammo and grenades from fallen enemies."));
entry.add(new EntryItem("Resistence to targeting systems including Dual Band, Target Finder," +
"Sensor Grenades and player-controlled aircraft."));
entry.add(new EntryItem("Flinch less when shot."));
entry.add(new EntryItem("Swap grenades faster, use grenades and equipment faster, and safely throw" +
"back frag grenades."));
entry.add(new SectionItem("Tier 3"));
entry.add(new EntryItem("Show enemy equipment, delay explosives, and re-roll and booby trap care" +
"packages."));
entry.add(new EntryItem("Move silently."));
entry.add(new EntryItem("Sprint for a longer duration."));
entry.add(new EntryItem("Reduce the effect of flash, concussiona and shock charges."));
entry.add(new EntryItem("Enemy movements are easier to hear."));
entry.add(new EntryItem("Climb ladders and mantle over objects faster, recover from melee faster and" +
"aim faster after sprinting."));
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(!items.get(position).isSection()){
EntryItem item = (EntryItem)items.get(position);
//Toast.makeText(this, "You clicked " + item.title , Toast.LENGTH_SHORT).show();
AlertDialog.Builder adb=new AlertDialog.Builder(Perks.this);
adb.setTitle(item.title);
adb.setMessage();
adb.setPositiveButton("Ok", null);
adb.show();
}
super.onListItemClick(l, v, position, id);
}
}
What I'm trying to do is to have it so that when an "item" is pressed, it will show the corresponding "entry" in an AlertDialog. Any help on the matter will be greatly appreciated.
Thanks :)
Upvotes: 0
Views: 666
Reputation: 7110
You might be storing the value that you are sending through the EntryItem
constructor into some variable in that particular class. right?
If you are doing so you can use :
adb.setMessage(""+item.getTheValueFromTheVariable());
Upvotes: 0
Reputation: 4772
Well, it looks like your current array lists have the same values for the corresponding indices... in other words.. if the user selects item 2 in the items list, you want to display item 2 in the entry list.
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(!items.get(position).isSection()){
EntryItem item = (EntryItem)items.get(position);
EntryItem discriptor = (EntryItem) entry.get(position);
AlertDialog.Builder adb=new AlertDialog.Builder(Perks.this);
adb.setTitle(item.title);
adb.setMessage(discriptor.getTitle()); //get the value of this element.
adb.setPositiveButton("Ok", null);
adb.show();
}
super.onListItemClick(l, v, position, id);
}
Otherwise, I personally think it would be much easier to just create one class to handle both sets of data... e.g.
public class EntryItem {
private String name;
private String description;
public EntryItem(String name, String discription){
this.name = name;
this.description = discription;
}
}
I just think it would be easier to manage this way.. Best of Luck!
Upvotes: 2