我在列表视图中有一个列表项。如果我点击第一项,我将启动活动并将显示一些图像。如果我点击第二个列表项,我将开始另一个活动,并将显示一些图像集。这是列表视图代码。 包com.example.per.app;
public class AlbumListActivity extends Activity {
public String[] mListInfo = { "1st Month", "2nd Month", "3rd Month",
"4th Month", "5th Month", "6th Month", "7th Month", "8th Month",
"9th Month", "10th Month", "11th Month", "12th Month" };
public ListView mList = null;
public Intent mLaunch = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list_album);
mList = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(
getApplicationContext(), android.R.layout.simple_list_item_1,
mListInfo);
mList.setAdapter(mAdapter);
mList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch (arg2) {
case 0:
mLaunch = new Intent(getApplicationContext(),FirstMonthActivity.class);
startActivity(mLaunch);
}
}
});
}
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView imageView;
if (arg1 == null) { // if it's not recycled, initialize some
// attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(363, 363));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(0, 0, 0, 0);
} else {
imageView = (ImageView) arg1;
}
imageView.setImageResource(mThumbIds[arg0]);
return imageView;
} // references to our images
Integer[] mThumbIds = { R.drawable.sample0, R.drawable.sample1,
R.drawable.sample2, R.drawable.sample3, R.drawable.sample4,
R.drawable.sample5, R.drawable.sample6, R.drawable.sample7,
R.drawable.sample8, R.drawable.sample9 };
}
}
我需要在视图中维护List项目的ImageAdapater类吗?因为对于每个List项目我想要显示不同的图像集。
目前我只添加了Case 0,我将添加Case 1 case2 case3 ... case 12.因此我必须启动12个活动。在每个活动中我想显示不同的图像集。
答案 0 :(得分:1)
你的问题不明确。我认为没有必要发起12项活动。您只需编写一个活动,当您点击列表项中的活动时,您可以直接传递一个可绘制的int数组,以用作下一个活动中的图像集。
以下是您可以尝试的示例代码....
在你的活动列表中你可以保留一些像这样的可绘制的Arraylist,所以对于你的情况你可能需要12个这样的ArrayList。
ArrayList<Integer> thumb1list = new ArrayList<Integer>();
thumb1list.add(R.drawable.ic_launcher);
thumb1list.add(R.drawable.ic_launcher);
thumb1list.add(R.drawable.ic_launcher);
然后当您点击列表项时,然后启动您的第二个活动
Intent intent = new Intent(MainActivity.this , Second.class);
intent.putIntegerArrayListExtra("key", thumb1list);
startActivity(intent);
最后在你的第二个活动中,像这样
捕获上面的Integer ArrayListArrayList<Integer> Array = getIntent().getExtras().getIntegerArrayList("key");
然后,您可以在gridview或任何您喜欢的任何内容中加载这些图像。