2013-09-26 40 views
1

我在我的應用程序下面的類:如何將信息傳遞到自定義ArrayAdapter的getView?

public class Player implements Parcelable { 
    private String name; 
    private int playerColor; 
    private int[] scores; 
    ... 
} 

我怎麼告訴我的ArrayAdapter的getView方法得分陣列的哪個元素在相關列表視圖中顯示?我希望在ListView中顯示player.name字段以及player.scores數組中的特定元素,這些信息基於活動的信息。

public class PlayerGameAdapter extends ArrayAdapter<Player> { 
private ArrayList<Player> entries; 
private Activity activity; 

public PlayerGameAdapter(Activity a, int viewResourceId, ArrayList<Player> entries) { 
    super(a, viewResourceId, entries); 
    this.entries = entries; 
    this.activity = a; 
} 

public static class ViewHolder { 
    public Button buttonName; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    ViewHolder holder; 
    if (v == null) { 
     LayoutInflater vi = 
       (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = vi.inflate(R.layout.listview_row_player_game, null); 
     holder = new ViewHolder(); 
     holder.buttonName = (Button) v.findViewById(R.id.buttonGamePlayerListName); 
     v.setTag(holder); 
    } else 
     holder = (ViewHolder) v.getTag(); 

    final MiniGolfPlayer player = entries.get(position); 
    if (player != null) { 
     holder.buttonName.setText(player.getName() + " - " + player.scores[ELEMENT]); 
    } 
    return v; 
} 

}

+0

您是否在列表視圖中顯示玩家信息。或者您正在顯示玩家結果。你不時想換個玩家。 – hasan83

+0

兩者。我想在活動中確定他們的名字和他們在特定回合中的得分。 – CovertDad

+0

你可以編輯你的問題來包含PlayerGameAdapter的構造函數嗎? – hasan83

回答

1

添加位置變量設置爲播放器類。

public class Player implements Parcelable { 
    private String name; 
    private int playerColor; 
    private int[] scores; 
    private int position; // also add the get and set methods 
} 

在您的活動中,您可以更改要爲每個玩家單獨顯示的分數的位置。

((Player)entries.get(0)).setPosition(AnyValueYouWant); 
((Player)entries.get(1)).setPosition(AnotherValue); 

然後通知你的適配器刷新列表視圖:

PlayerGameAdapter.notifyDataSetChanged(); 

這是否爲你工作。或者你期望別的東西。

+0

我在想這個想法。什麼是你的應用邏輯。並在什麼基礎上改變顯示的分數? – hasan83

相關問題