Объявить переменную URL в Uri.parse Android - PullRequest
0 голосов
/ 12 октября 2019

Я хочу передать три значения другому занятию, а во втором занятии я хочу объявить строку с разными URL-адресами намерения в функции Uri.parse, но это дает мне ошибку, говоря: Value getLink must be initialized

Я получил простой кодпри нажатии кнопки он подсчитывает щелчки и передает значение от MainActivity до SecondActivity

MainActivity

generate_btn.setOnClickListener{
    btnClicks++
    val intent = Intent(this@MainActivity, SecondActivity::class.java)
        if (btnClicks == 1) {
            intent.putExtra("generate_btn_clicks1", "1")
            startActivity(intent)
        } else if (btnClicks == 2) {
            intent.putExtra("generate_btn_clicks2", "2")
            startActivity(intent)
        } else if (btnClicks == 3) {
            intent.putExtra("generate_btn_clicks3", "3")
            startActivity(intent)
        }
    }
}

SecondActivity

val getLink: String
val btn = intent


val genBtn1 = intent.extras!!.getString("generate_btn_clicks1")
// tried with getStringExtra too but doesn't work
val genBtn2 = btn.getStringExtra("generate_btn_clicks2")
val genBtn3 = btn.getStringExtra("generate_btn_clicks3")

if (genBtn1 == "1") {
    getLink = "https://google.com/"
} else if(genBtn2 == "2") {
    getLink = "https://facebook.com/"
} else if(genBtn3 == "3") {
   getLink = "https://pinterest.com/"
}

val links = Intent(Intent.ACTION_VIEW, Uri.parse(getLink))

Так что это просто простой подсчетпеременная и передача данных в Uri.parse, но, кажется, я не могу добавить строки там? В чем проблема, которую я не понимаю?

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Проблема устранена благодаря @Tyrone и @blackapps. Теперь она стала более аккуратной и работает!

Вот рабочий полный код

MainActivity

generate_btn.setOnClickListener{
    btnClicks++
    val intent = Intent(this@MainActivity, SecondActivity::class.java)
    intent.putExtra("generate_btn_clicks", btnClicks)

        if (btnClicks == 1) {
            startActivity(intent)
        } else if (btnClicks == 2) {
            startActivity(intent)
        } else if (btnClicks == 3) {
            startActivity(intent)
            btnClicks = 0
        }
    }
}

SecondActivity

val genBtn = intent.extras!!.getInt("generate_btn_clicks")
var getLink : String = ""

if (genBtn == 1) {
    getLink = "https://google.com"
} else if (genBtn == 2) {
    getLink = "https://facebook.com"
} else if (genBtn == 3) {
    getLink = "https://pinterest.com"
}

val intent_pic = Intent(Intent.ACTION_VIEW, Uri.parse(getLink))
0 голосов
/ 12 октября 2019

Вы делаете свой код более сложным, чем он есть. Это хорошая практика, чтобы сделать это проще, но эффективным. Вместо того, чтобы иметь ваш код, подобный этому:

if (btnClicks == 1) { 
            intent.putExtra("generate_btn_clicks1", "1")
            startActivity(intent)
        } else if (btnClicks == 2) {
            intent.putExtra("generate_btn_clicks2", "2")
            startActivity(intent)
        } else if (btnClicks == 3) {
            intent.putExtra("generate_btn_clicks3", "3")
            startActivity(intent)
        }

, тогда получите его:

intent.putExtra("generate_btn_clicks", btnClicks)
startActivity(intent)

Затем во втором упражнении:

val genBtn = btn.getIntExtra("generate_btn_clicks")

if (genBtn == 1) {
    getLink = "https://google.com/"
} else if(genBtn == 2) {
    getLink = "https://facebook.com/"
} else if(genBtn == 3) {
   getLink = "https://pinterest.com/"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...