无法解析符号(任何ID)的Android Studio

时间:2016-07-20 09:09:13

标签: android

我是一名菜鸟Android工作室程序员(这是学习的第2小时!)我希望这是一个真正的新手错误我正在制作!

我的应用程序中有一个纯文本字段,我想动态设置它的文本。我给了明文字段ID:“resultText”。这是我尝试的内容;

    public void calcnums(View v)
{
    int x=firstNum + seondNum;
    resultText.setText("Result: " + x);
}

出于某种原因,我将'resultText'突出显示为红色,并将鼠标悬停在消息上;无法解析符号'resultText'。

我觉得我使用ID做错了,但我迷路了!

评论中建议的完整代码;

import android.app.Application;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.util.Random;

public class AddNumbers extends AppCompatActivity {
    private int firstNum;
    private int seondNum;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_numbers);
    }

    public void calcnums(View v)
    {
        int x=firstNum + seondNum;
        resultText.setText(String.format("Result: %d", x);
    }
    public void setNums(View v)
    {
        TextView tx= (TextView) findViewById(R.id.text);
        Random r = new Random();
        int x=r.nextInt(2) + 1;  // r.nextInt(2) returns either 0 or 1
        firstNum = x;
        r = new Random();
        x=r.nextInt(2) + 1;
        seondNum = x;
        num1.setText(""+firstNum);
        num2.setText(""+seondNum);
    }
}

4 个答案:

答案 0 :(得分:2)

您似乎需要声明View resultText

像,

EditText resultText = (EditText) findViewById(R.id.resultText);

还要确保您在

通常无法解析符号表示变量声明中存在一些问题。

我也在学习android,我也偶然发现了这个问题。

答案 1 :(得分:1)

我没有代码的整个片段。但是你可能缺少的是将你的EditText对象指向xml中查看。

EditText resultText =(EditText)v.findViewById(R.id.result_edit_text);

<EditText
    android:id="@+id/result_edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/result_edit_text"
    />

答案 2 :(得分:-1)

我们假设我们有一个带有edittext的布局

  <EditText
            android:id="@id/txt_user_email"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="text" />

它有一个ID。在您的actoteivy中,您必须找到并转换EditText,如下所示:

EditText txtUserEmail = (EditText) findViewById(R.id.txt_user_email);
txtUserEmail.setText("klaus.dieter@lusty-swingers.de");

答案 3 :(得分:-1)

您需要在onCreate()中找到您的文字视图,例如:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_numbers);
    TextView tx= (TextView) findViewById(R.id.text);
}