- ActivityResultContracts
- Permissions
- Request Permission
- Multiple Request Permissions
- Image
- Pick Image from Camera
- Select Image from Gallery
- CropImageActivity with Pick Image or Select Image
- Document
- Open Single Document
- Open Multiple Documents
- Permissions
- CoroutineScope
- GlobalScope
- async{}
- await()
Name Page | Preview UI | Preview UI |
---|---|---|
Home |
none |
|
Permissions |
||
Crop Image |
||
Open Single Document |
||
Open Multiple Documents |
// Kotlin Coroutine
implementation 'androidx.activity:activity-ktx:1.4.0'
// Image Cropper
api 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
- Add viewBinding
true
build.gralde (Module)
android {
...
buildFeatures {
viewBinding true
}
}
- Activity Kotlin Class
class MainActivity : AppCompatActivity() {
/** Add this */
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
/** Add this */
binding = ActivityMainBinding.inflate(layoutInflater)
/** Change this */
setContentView(binding.root)
/** Without findViewById */
binding.textView.text = "Bye bye findViewById"
}
}
- Activity Java Class
public class MainActivity extends AppCompatActivity {
/** Add this */
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Add this */
binding = ActivityMainBinding.inflate(getLayoutInflater());
/** Change this */
setContentView(binding.getRoot());
/** Without findViewById */
binding.textView.setText("Bye bye findViewById");
}
}
binding in kotlin can be used directly without initializing findViewById on widgets in layout xml