我对安卓Android游戏中的设计情况感到不安。
public class ModeSelectionActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_modeselection);
fillGridView();
}
private void fillGridView(){
ClickHandler clickHandler = new ClickHandler();
String[] categories = getResources().getStringArray(R.array.categories);
CustomGridAdapter customGridAdapter = new CustomGridAdapter(this,clickHandler,categories);
GridView modeSelection = (GridView) findViewById(R.id.modeSelection);
modeSelection.setAdapter(customGridAdapter);
}
}
在本次活动中,我正在设计一个用户选择游戏模式的页面,如足球词,城市/乡村词等。此类别名称来自strings.xml文件
<string-array name="categories">
<item>FOOTBALL</item>
<item>CELEBRITIES</item>
<item>SERIES/MOVIE</item>
<item>CITY/COUNTRY</item>
<item>MIXED</item>
</string-array>
这些数组传递到customgridviewadapter,它创建按钮,并为每个按钮提供类别名称(如足球)作为标记。
我的麻烦从这里开始。我不想控制点击哪个按钮,因此我不想为该类别的游戏单词发送id(对于strings.xml)。我想要的是,每个按钮保持相应的下一个字符串数组ID。基本上,我不想if-else if-else或切换案例来解决相同的活动或下一个游戏活动。 如果有人给我任何想法,我会很高兴:)
答案 0 :(得分:0)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button btn;
if(convertView == null){
btn = new Button(context);
btn.setPadding(3,3,3,3);
}else{
btn = (Button)convertView;
}
btn.setText(getItem(position));
btn.setTextColor(Color.WHITE);
btn.setBackgroundResource(R.drawable.gridbuttonshape);
//btn.setTag("btn_"+getItem(position));
btn.setTag(getItem(position));
btn.setOnClickListener(clickListener);
return btn;
}
这是我的customgridadapter类&#39; getView方法。 .setTag方法将buttontexts添加为标记。例如; FOOTBALL按钮有FOOTBALL标签。