Привет всем) Я новичок в Android dev. Я почти закончила sh свое приложение, но когда я добавила RewardedVideoAd с AdMod, у меня возникли 2 проблемы.
Это моя деятельность:
class TestActivity : AppCompatActivity(), RewardedVideoAdListener{
private lateinit var urlToTest: String
private val list = ArrayList<Test>()
private var randomList = ArrayList<Test>()
private var currentItem = 0
private var fragmentsList = ArrayList<Fragment>()
private var checkAdapter : Int = -1
private lateinit var mRewardedVideoAd: RewardedVideoAd
private var userChoise = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
val title = getIntent().getStringExtra("TestTitle")
setTitle(title)
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this)
mRewardedVideoAd.rewardedVideoAdListener = this
urlToTest = "http://sasmobile.ru" + getIntent().getStringExtra("urlToJson") + getIntent().getStringExtra("jsonName")
val recView = findViewById<RecyclerView>(R.id.testRecyclerView)
recView.layoutManager = LinearLayoutManager(this, RecyclerView.HORIZONTAL, false)
val connector = Connector().isConnectedToNetwork(this)
val submitButton: Button = findViewById(R.id.submitButton)
loadRewardedVideoAd()
if (connector) {
rewardedDialog()
} else {
submitButton.visibility = View.INVISIBLE
openAlertDialog()
}
}
private fun loadRewardedVideoAd() {
if (!mRewardedVideoAd.isLoaded) {
val proggressBar: ProgressBar = findViewById(R.id.progressBarTest)
proggressBar.visibility = View.VISIBLE
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", AdRequest.Builder().build())
}
}
private fun openTest(){
AsyncTaskHandler().execute(urlToTest)
submitButton.setOnClickListener {
if (currentItem != 9) {
currentItem += 1
testAdapterItemClick(randomList[currentItem], currentItem)
}
else if(currentItem == 9) {
checkAdapter = 1
submitButton.setOnClickListener() {
val adapter = TestCheckAdapter(randomList) { item, position ->
testAdapterItemClick(item, position)
}
val recView = findViewById<RecyclerView>(R.id.testRecyclerView)
recView.adapter = adapter
}
}
}
}
Logi c просто. Когда пользователь открывает активность, он видит AlertDialog с предложением увидеть RewardedVideo. Если пользователь нажмет «Нет», активность завершится sh. Если пользователь нажмет «Да», он увидит RewardedAd и затем сможет пройти тесты, которые будут открыты в openTest () fun.
Вот мой rewardedDialog ():
private fun rewardedDialog(){
lateinit var dialog: AlertDialog
val builder = AlertDialog.Builder(this)
builder.setTitle("Внимание!!!")
builder.setMessage("Проект существует и развивается за счёт рекламы - у Вас есть возможность убрать её НАВСЕГДА" +
"(на главном экране кнопка \"Super\") Что бы пройти тренировочный тест Вам нужно просмотреть рекламу. Вы согласны ?")
.setCancelable(false)
val dialogClickListener = DialogInterface.OnClickListener{_, which ->
when(which){
DialogInterface.BUTTON_POSITIVE -> userChoise=true
DialogInterface.BUTTON_NEGATIVE -> this.finish()
}
}
builder.setPositiveButton("Да", dialogClickListener)
builder.setNegativeButton("Нет", dialogClickListener)
dialog = builder.create()
dialog.show()
}
А вот мои переопределенные функции из RewardedVideoAdListener.
override fun onRewardedVideoAdClosed() {
loadRewardedVideoAd()
userChoise=false
val proggressBar: ProgressBar = findViewById(R.id.progressBarTest)
proggressBar.visibility = View.INVISIBLE
}
override fun onRewardedVideoAdLeftApplication() {
this.finish()
}
override fun onRewardedVideoAdLoaded() {
if(userChoise) {
mRewardedVideoAd.show()
}
}
override fun onRewardedVideoAdOpened() {
TODO("not implemented")
}
override fun onRewardedVideoCompleted() {
openTest()
}
override fun onRewarded(p0: RewardItem?) {
TODO("not implemented")
}
override fun onRewardedVideoStarted() {
TODO("not implemented")
}
override fun onRewardedVideoAdFailedToLoad(p0: Int) {
lateinit var dialog: AlertDialog
val builder = AlertDialog.Builder(this)
builder.setTitle("Ой!")
builder.setMessage("Что-то пошло не так. Попробуйте посже.")
.setCancelable(false)
val dialogClickListener = DialogInterface.OnClickListener{_, which ->
when(which){
DialogInterface.BUTTON_POSITIVE -> this.finish()
}
}
builder.setPositiveButton("Ок", dialogClickListener)
dialog = builder.create()
dialog.show()
}
}
У меня есть 2 проблемы: 1) Когда я открываю это действие, просматриваю RewardeVideo и открываю тест, я не могу открыть это RewardedVideo и тестировать снова. Если я нажму кнопку «Назад» и снова открою это занятие, я увижу пустое занятие. 2) Все отлично работает на моем устройстве, но с 6 Android RewardedVideo не может загрузить.
Пожалуйста, помогите мне) Заранее спасибо)
PS Извините за мой Engli sh)