我有一個我正在處理的小應用程序,它顯示了一個怪物列表。你可以點擊每個怪物來查看關於那個怪物的更多信息。將數據從一個活動動態添加到另一個活動
該列表位於我的xml佈局文件中的TableLayout中。
但是看着代碼,很容易看到事物如何失控,我添加的怪物越多。
我想知道,如果有更好的方法來確定哪個怪物被點擊以及如何獲得從怪物視圖列表傳遞到怪物信息視圖所需的信息。
這是我的代碼到目前爲止。它工作正常,但我知道這不是很好,因爲我必須爲每個添加到列表中的新怪物添加一個新的case語句。
public void AddNewView(View view) {
//get selected button view
switch(view.getId())
{
//get textview & imageview monsters from xml
//get monster picture and monster info from xml
case R.id.showMonsterButton1:
iv = (ImageView) findViewById(R.id.monster1_icon);
tv = (TextView) findViewById(R.id.monster1_info);
ShowMonsterInfoView(tv, iv);
break;
case R.id.showMonsterButton2:
iv = (ImageView) findViewById(R.id.monster2_icon);
tv = (TextView) findViewById(R.id.monster2_info);
ShowMonsterInfoView(tv, iv);
break;
case R.id.showMonsterButton3:
iv = (ImageView) findViewById(R.id.monster3_icon);
tv = (TextView) findViewById(R.id.monster3_info);
ShowMonsterInfoView(tv, iv);
break;
case R.id.showMonsterButton4:
iv = (ImageView) findViewById(R.id.monster4_icon);
tv = (TextView) findViewById(R.id.monster4_info);
ShowMonsterInfoView(tv, iv);
break;
}
}
public void ShowMonsterInfoView(TextView tv, ImageView iv) {
Intent intent = new Intent(this, DisplayMonsterInfo.class);
String text_tag = tv.getTag().toString();
String image_tag = iv.getTag().toString();
Bundle extras = new Bundle();
extras.putString("name", text_tag);
extras.putString("avatar", image_tag);
intent.putExtras(extras);
startActivity(intent);
}
謝謝你讓我知道我離開了那些信息。我編輯了原始問題以包含它。怪物列表位於TableLayout中的XML文件中。 – SkyeBoniwell