我有一个对象数组。在我的列表视图中,我仅传递这些对象的名称,但是当有人点击它们中的任何一个时,我想要一个新窗口弹出并查看我的项目中的额外信息。我能以某种方式做到吗?具有未知数量的项目的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