【发布时间】:2017-08-19 18:46:49
【问题描述】:
我正在尝试显示从图库中获取的图像。我不能像通常那样打电话给setImageBitmap。那是因为尚未创建 ImageView 吗?
公共类 MainActivity 扩展 AppCompatActivity {
int RESULT_LOAD_IMAGE = 1;
//LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS
ArrayList<ImageView> listItemImg=new ArrayList<>();
//DEFINING A STRING ADAPTER WHICH WILL HANDLE THE DATA OF THE LIST VIEW
ArrayAdapter<ImageView> adapter;
//RECORDING HOW MANY TIMES THE BUTTON HAS BEEN CLICKED
int clickCounter=0;
private ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (mListView == null) {
mListView = (ListView) findViewById(R.id.picsListView);
}
adapter = new ArrayAdapter<>(this, R.layout.item_layout, R.id.picImageView, listItemImg);
setListAdapter(adapter);
}
这是单击按钮时调用的方法。
public void addStuff(View view) {
Intent gallery = new Intent(Intent.ACTION_GET_CONTENT);
gallery.setType("image/*");
startActivityForResult(gallery, RESULT_LOAD_IMAGE);
}
//METHOD WHICH WILL HANDLE DYNAMIC INSERTION
protected ListView getListView() {
if (mListView == null) {
mListView = (ListView) findViewById(R.id.picsListView);
}
return mListView;
}
protected void setListAdapter(ListAdapter adapter) {
getListView().setAdapter(adapter);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK){
Uri imageUri = data.getData();
Bitmap bitmap = null;
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
//This is the ImageView in which I'm trying to display the selected Image.
listItemImg.set(clickCounter, bitmap);
} catch (IOException e) {
e.printStackTrace();
}
clickCounter++;
adapter.notifyDataSetChanged();
}
}
}
对不起,如果问题太基本了。我找不到任何使用无处的例子。
【问题讨论】:
标签: android listview android-intent