好的,这就是我到目前为止所得到的:
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);
}
}
我要做的就是让它按下“item”时,它会在AlertDialog中显示相应的“条目”。任何有关此事的帮助将不胜感激。
谢谢:)
答案 0 :(得分:2)
好吧,看起来您当前的数组列表对应的索引具有相同的值...换句话说..如果用户在项目列表中选择第2项,则您希望在条目列表中显示第2项。
@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);
}
否则,我个人认为创建一个类来处理这两组数据要容易得多......例如。
public class EntryItem {
private String name;
private String description;
public EntryItem(String name, String discription){
this.name = name;
this.description = discription;
}
}
我认为以这种方式管理会更容易。祝你好运!
答案 1 :(得分:0)
您可能正在将通过EntryItem
构造函数发送的值存储到该特定类中的某个变量中。正确?
如果您这样做,可以使用:
adb.setMessage(""+item.getTheValueFromTheVariable());