如何在ListActivity之后更改ImageView?
问题描述:
这个想法是去ListActivity,点击一个项目,如果你点击项目X它显示一个特定的图像。如何在ListActivity之后更改ImageView?
这是我的Android代码。
package vds.cmc;
public class Dae extends ListActivity {
static final String bigfoot[] = {"Boy", "Girl"};
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setListAdapter(new PeopleAdapter(this, bigfoot));
iv = (ImageView) findViewById(R.id.ivID);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String qlo = bigfoot[position];
try {
if (qlo == "Girl") {
setContentView(R.layout.ppl);
iv.setImageResource(R.drawable.cw);
}
else {
setContentView(R.layout.ppl);
iv.setImageResource(R.drawable.no);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
我应该怎么做?或者我该如何解决它?
谢谢你,我很新。
答
产生一个新的活动来查看图像。
Intent intent = new Intent(this, ImageViewerActivity.class);
intent.putExtra(EXTRA_IMAGE_ID, R.drawable.boy); //could also pass the resource
startActivity(intent);
然后
public class ImageViewerActivity extends Activity {
private static final String EXTRA_IMAGE_ID = "ImageViewerActivity.EXTRA_IMAGE_ID";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
Resource resId = extras.getInt(EXTRA_IMAGE_ID);
mImageView.setImageDrawable(resId);
}
答
你已经扩展ListActivity
,所以这意味着该活动只有一个ListView,仅此而已。
你可以做任何接下来的事情就:
创建一个新的活动,将显示图像。
使用片段,而一个显示ListView和一个显示图像,并在它们之间切换。
使用setContentView两次,一个在选择之前(显示ListView)和一个之后(显示图像)。
使用不同的布局,您可以在ListView和ImageView之间切换(通过可见性或通过使用ViewSwitcher)。
我敢肯定还有其他方法。