https://engawapg.net/android/123/get-image-using-android-standard-gallery/
javaで開発をしています。
上記サイトの標準ギャラリーを実装するため、javaの文法に書き換えているところです。(最下部にコードを載せています。)
registerForActivityResult関数内でエラーが出ています。
-以下疑問
・imageViewについてImageViewの書き間違えと考えていますがこの考えは間違いですか。(サイトでは宣言されていません。cannot resolve symbol のエラーが出たため私のコードではfindviewbyidを使用してimageViewを使用しました。)
・ActivityResultContracts.OpenDocument()に「call method expected」のエラーがあり ソフトの指示の通りnewをインサートしましたが、「'registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I,O>, androidx.activity.result.ActivityResultCallback<O>)' in 'androidx.activity.ComponentActivity' cannot be applied to '(androidx.activity.result.contract.ActivityResultContracts.OpenDocument, void)'」と別のエラーが出ています。解決方法がわからず迷っています。
「
import androidx.activity.EdgeToEdge;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import android.widget.ImageView;
import android.net.Uri;
import androidx.activity.result.contract.ActivityResultContract;
public class SubActivity2 extends AppCompatActivity {
final ImageView imageview=findViewById(R.id.imageView);
Uri uri;
private final int launcher
= registerForActivityResult( ActivityResultContracts.OpenDocument(),
uri);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_sub2);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}
」
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/10/03 14:44