1

アプリケーションを起動する主なアクティビティがあります。メイン アクティビティには、インテントを介して 2 番目のアクティビティでImageView選択したサムネイルからパスの文字列を取得する があります。GridView

これは奇妙に聞こえるかもしれませんが、 で 2 番目のアクティビティを最初に起動する方がより自然GridViewですが、これはタスクの要件です。

だから私はimageId、2番目のアクティビティから意図を期待する文字列をどのように扱うかという困難に苦しんでいますか? 2番目のアクティビティを開くGridViewボタンやメニューボタンなどを配置する必要があると思いますが、意図的なものに対処する方法はありますか? 助けていただければ幸いです。

メイン アクティビティのコード:

String imageId = i.getExtras().getString("image");

ImageView imageView = (ImageView) findViewById(R.id.full_image_view);

Bitmap bitmap =BitmapFactory.decodeFile(imageId);
imageView.setImageBitmap(bitmap);
4

1 に答える 1

3

startActivityForResult次のようなを使用して 2 番目のアクティビティを開きます。

2 番目のアクティビティを開始するには:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

次に、返された結果を処理します。

 @Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == Activity.RESULT_OK) {
       String imageId = data.getExtras().getString("image");

       ImageView imageView = (ImageView) findViewById(R.id.full_image_view);

       Bitmap bitmap =BitmapFactory.decodeFile(imageId);
       imageView.setImageBitmap(bitmap);
    }
}

2 番目のアクティビティで、サムネイルが選択されている場合:

 Intent intent = new Intent();
 intent.putExtra("image", path);
 setResult(RESULT_OK, intent);
 finish();

https://stackoverflow.com/a/10407371/1434631を確認してください

于 2013-02-19T08:40:57.597 に答える