Функция умножения для активности в Android Studio

#android #android-studio #kotlin #android-activity

#Android #android-studio #kotlin #android-активность

Вопрос:

** Halo Мне нужна небольшая помощь, чтобы вы могли видеть, что есть 2 кнопки create, но я запускаю приложение с помощью эмулятора, оно работает только для кнопки create для запроса разрешения, но оно не переходит к действию 2, кто-нибудь может предложить, чтобы 2-я кнопка работала? Нужно ли мне использовать переопределение fun?** пакет com.example.preludeprototpe

  import android.Manifest
 import android.content.Intent
 import android.content.pm.PackageManager
 import androidx.appcompat.app.AppCompatActivity
 import android.os.Bundle
 import android.util.Log
 import androidx.core.app.ActivityCompat
 import kotlinx.android.synthetic.main.activity1.*

 class Activity1 : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity1)


    // Its a buutton for go to the Activity 2,but its not working
    btncreate.setOnClickListener {
        Intent(this, Activity2::class.java).also {
            startActivity(it)
        }
    }
    // function for asking permission but its the only one worked
    btncreate.setOnClickListener {
        requestpermisson()
    }
    //button for go to Activity 3
    btnlogin.setOnClickListener {
        Intent(this, Activity3::class.java).also {
            startActivity(it)
        }
     }
 }

    // function for permission
   private fun writeExternalStorage() =
    ActivityCompat.checkSelfPermission(this,
        Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED

   private fun permissionInternet() =
    ActivityCompat.checkSelfPermission(this, Manifest.permission.INTERNET) == 
     PackageManager.PERMISSION_GRANTED

   private fun permissionCamera() =
    ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == 
     PackageManager.PERMISSION_GRANTED

    private fun permissionExternal() =
    ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == 
      PackageManager.PERMISSION_GRANTED

   private fun requestpermisson() {
    val permissionToRequest = mutableListOf<String>()
    if (!writeExternalStorage()) {
        permissionToRequest.add(Manifest.permission.WRITE_EXTERNAL_STORAGE)
    }
    if (!permissionInternet()) {
        permissionToRequest.add(Manifest.permission.INTERNET)
    }
    if (!permissionCamera()) {
        permissionToRequest.add(Manifest.permission.CAMERA)
    }
    if (!permissionExternal()) {
        permissionToRequest.add(Manifest.permission.CAMERA)
    }
    if(permissionToRequest.isNotEmpty()){
        ActivityCompat.requestPermissions(this,permissionToRequest.toTypedArray(),0)
     }
 }

 // fun for permission
  override fun onRequestPermissionsResult(
     requestCode: Int,
     permissions: Array<out String>,
     grantResults: IntArray
 ) {
     super.onRequestPermissionsResult(requestCode, permissions, grantResults)
     if(requestCode == 0 amp;amp; grantResults.isNotEmpty()) {
         for(i in grantResults.indices) {
             if(grantResults[i] == PackageManager.PERMISSION_GRANTED) {
                 Log.d("PermissionRequest","${permissions[i]} granted")
                }
            }
        }
    }
 }
  

Комментарии:

1. вы добавили Activity2 AndroidManifest.xml ?

2. да, я уже добавил всю свою активность в манифест Activity3″/> Activity2″/> Activity1 «>

Ответ №1:

Пробовал это

 // Its a buutton for go to the Activity 2,but its not working
        btncreate.setOnClickListener {
            requestpermisson()
            val intent = Intent(this, Activity2::class.java)
            startActivity(intent)
        }

        //button for go to Activity 3
        btnlogin.setOnClickListener {
            val intent = Intent(this, Activity3::class.java)
            startActivity(intent)
        }
    }
  

Вместо создания нового

btncreate

вы могли бы объединить

requestpermission()

в первом

Комментарии:

1. он не работает, его единственная функция make Intent работала с Activity2, но функция разрешения не работает