Ресурс значения идентификатора: Android Studio - PullRequest
0 голосов
/ 14 июля 2020

https://developer.android.com/training/basics/firstapp/starting-activity#BuildIntent

Я слежу за демонстрацией на этом веб-сайте, чтобы получить общее представление о том, как работает Android Studio. В следующей части кода говорится «нажмите Alt + Enter», чтобы удалить ошибки. Проблема в том, что editText в строке 3 (R.id.editText) заставляет меня создать новый ресурс значения id или переименовать ссылку (чего я не хочу делать).

public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.editText);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

Может кто-нибудь объясните, что такое ресурс значения id? Также есть предложения о том, как решить эту проблему? Я новичок в Android Studio, поэтому не понимаю, что именно это означает.

Спасибо. он говорит «ошибка: не удается найти символ»

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Id ресурса - это уникальный идентификатор, например имя переменной. Это должно быть uniq, иначе у вас возникнут проблемы с именами.

Xml файл, в котором он пишет:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical"
tools:context=".MainActivity">

<!--LOOOOOOOOOOOOOK HERE-->
<TextView
    android:id="@+id/placeHereIdWhichYouWant"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text"
/>

</LinearLayout>

Ваша строка editText.getText().toString(); просто возьмите текст из вашего EditText View. Просто укажите идентификатор EditText, и все будет работать, если он не импортирует R. в ваш класс

package com.example.test //here name of your package

import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
0 голосов
/ 14 июля 2020

Чтобы решить вашу проблему, я полагаю, что в основном макете вашего действия вы добавили editText в качестве представления, вот как добавить Editext в свой макет

<EditText 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editTextTextPersonName" //this is the id value
    />

В коде действия установите идентификатор таким образом

public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.editTextTextPersonName);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...