Я следовал некоторому руководству (скачайте Android-студию сегодня) по kotlin, и я использую setText, и он не работает. в чем будет проблема?
package com.example.basic
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
Toast.makeText(applicationContext, "button was pressed.", Toast.LENGTH_LONG).show()
}
button2.setOnClickListener {
val input = editTextTextPersonName.text.toString()
TextView.setText("entered value: ${input}")
}
}
}
(Я пытался заменить setText на текст, но он все еще красный и не может его сохранить)
Неразрешенная ссылка: setText (ошибка)
2 ответа
TextView
— имя класса. Вам нужно применить setText к экземпляру класса. так же, как ты
editTextTextPersonName.text.toString()
Вместо того
EditText.text.toString()
Я не знаю, что вызывается ваш TextView, но вам нужно сделать
instanceOfYourTextView.setText("entered value: ${input}")
Как упомянул Маюр Гаджра, вы не используете представление из XML, а вместо этого используете класс TextView, и это ваша проблема, вместо этого вам нужно иметь что-то вроде этого:
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
/>
И тогда ваша MainActivity должна выглядеть следующим образом:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
Toast.makeText(applicationContext, "button was pressed.", Toast.LENGTH_LONG).show()
}
button2.setOnClickListener {
val input = editTextTextPersonName.text.toString()
text.setText("entered value: ${input}")
}
}
}
Новые вопросы
android
Android - это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфоны, планшеты, автомобили, телевизоры, одежда, стекло, IoT). Для тем, связанных с Android, используйте специальные теги Android, такие как android-intent, android-activity, android-адаптер и т. Д. Для вопросов, не связанных с разработкой или программированием, но связанных с платформой Android, используйте эту ссылку: https: // android.stackexchange.com .
TextView
, но я предполагаю, что вы хотите использовать свое представление. может быть, это начинается с маленького случаяtextView
. Проверьтеid
этогоTextView
в XML. Вы можете изменить идентификатор, если он имеет то же имя, что и класс.