我有一個對象數組。在我的列表視圖中,我僅傳遞這些對象的名稱,但是當有人點擊它們中的任何一個時,我想要一個新窗口彈出並查看我的項目中的額外信息。我能以某種方式做到嗎?具有未知數量的項目的OnClickItem Android
這是我的名單活動看起來像:
public class ListItemsActivity extends ListActivity {
String[] mTestArray;
ListView listView;
private static final String TAG = "ListActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "Trying to create the list activitye");
super.onCreate(savedInstanceState);
ArrayAdapter<String> adapter;
mTestArray = getResources().getStringArray(R.array.sections);
ArrayList<Sweet> sweets = getSweets(mTestArray);
ArrayList<String> result = getSweetsNames(mTestArray);
Log.d(TAG, mTestArray.toString());
adapter = new ArrayAdapter<String>(
this,
R.layout.activity_list_items,
result;
setListAdapter(adapter);
}
public void onListItemClick(ListView parent, View v, int position, long id) {
parent.setItemChecked(position, parent.isItemChecked(position));
Toast.makeText(this, "You have selected " + mTestArray[position],
Toast.LENGTH_SHORT).show();
}
因此,這是確定的,它讓我的名字的lsit。當我點擊它們時,它會告訴我一個我選擇它的小彈出物。我想要的實際上是打開一個新窗口並顯示來自我的項目的所有信息。那可能嗎?我將如何去做這件事?
我發現的唯一辦法是做這樣的事情:
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch(position) {
case 0: Intent newActivity = new Intent(this, i1.class);
startActivity(newActivity);
break;
case 1: Intent newActivity = new Intent(this, i2.class);
startActivity(newActivity);
break;
case 2: Intent newActivity = new Intent(this, i3.class);
startActivity(newActivity);
break;
case 3: Intent newActivity = new Intent(this, i4.class);
startActivity(newActivity);
break;
case 4: Intent newActivity = new Intent(this, i5.class);
startActivity(newActivity);
break;
}
}
但它的這些原因個不錯的辦法: 1)我有一個未知數量的元素 2)我沒有1000周的活動對於每個項目,我想要一個通用窗口,這取決於某個整數位置。
我可以這樣做嗎?
你想要顯示什麼信息? – Swr7der
我有一個名爲Sweets的類,ti有名稱,價格,說明......現在我只顯示名稱 – Mocktheduck