Android Studio ожидает объявления участника после того, как участник уже был объявлен - PullRequest
2 голосов
/ 07 апреля 2019

Это мое первое приложение для Android, и я пытаюсь заполнить объект textView некоторым текстом.

Когда я пытаюсь установить текст для объявленного объекта TextView:

val textView = findViewById<TextView>(R.id.textView)

textView.text = 'hello'

Произошла ошибка, в которой говорится "Ожидается объявление участника"

Похоже, Android-студия не распознает объявление.Ссылки на изображения моего кода в rStudio (пока не допускается прямая публикация изображений): https://drive.google.com/file/d/1jXaU4Fd6_hIhqRuLLbS-SG7uFscK8eOW/view?usp=sharing

https://drive.google.com/file/d/1-AQW_943cL7TzqS8gczQCY25z8-3mDVo/view?usp=sharing

Я попытался: 1) очистить и перестроить проект.2) установить textView в «hello» (двойные кавычки) и строковую переменную.

Я могу установить текст для объектов textview, используя эту же процедуру в других действиях в моем приложении, но я не могу сделать это здесь,Я уверен, что это что-то глупое с моей стороны, но я просто не вижу этого.

Пожалуйста, дайте мне знать, если что-то нуждается в разъяснении или мне нужно предоставить больше информации.

package com.example.appzilla

import androidx.appcompat.app.AppCompatActivity

import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.TextView
import androidx.cardview.widget.CardView

class Place_Page : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.place_page)
    }
    val textView = findViewById<TextView>(R.id.textView)
    textView.text = 'hello'

    val place : Place = intent.getParcelableExtra("Extra_Place")


}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Place_Page">

    <TextView
        android:id="@+id/textView"
        android:layout_width="300dp"
        android:layout_height="150dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="268dp"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.494"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

Поместите строки textview в метод oncreate.Findviewbyid работает только после setcontentview.

0 голосов
/ 07 апреля 2019
val textView = findViewById<TextView>(R.id.textView)
textView.text = 'hello'

Код выше должен быть внутри onCreate

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.place_page)
    val textView = findViewById<TextView>(R.id.textView)
    textView.text = 'hello'
}

или, если это должно быть поле:

class Place_Page : AppCompatActivity() {
    lateinit var textView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.place_page)
        textView = findViewById<TextView>(R.id.textView)
        textView.text = 'hello'
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...