【问题标题】:Display java string in xml textview在xml textview中显示java字符串
【发布时间】:2016-12-29 06:25:34
【问题描述】:

这是我下面的java代码,问题是xml id。出于某种原因,每当我尝试将其打印出来时,我总是会得到 null,有什么问题吗?

public class MainActivity extends AppCompatActivity{

private boolean correct;
private String questionTxt;

public int correctAnswer()
{
    int first = (int)(Math.random() * 10);
    int second = (int)(Math.random() * 10);
    int answer = first + second;
    questionTxt = first + " + " + second;
    return answer;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

    TextView questionText = (TextView)findViewById(R.id.question);
    questionText.setText(questionTxt + "");
}

xml代码,就是普通的textview:

 <TextView
    android:id="@+id/question"
    android:background="@color/colorAccent"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:gravity="center"
    android:layout_above="@+id/option1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="11dp"
    android:screenOrientation="portrait"/>

【问题讨论】:

  • 请显示您的 xml 代码
  • 您没有从任何地方呼叫correctAnswer(),所以您的questionTxt 为空
  • 在这里发布完整代码
  • 你的问题不在于 XML
  • 我在哪里调用正确答案?

标签: android xml string


【解决方案1】:

调用此方法correctAnswer();在将值设置为 textview 之前

public class MainActivity extends AppCompatActivity{

private boolean correct;
private String questionTxt;

public int correctAnswer()
{   
int first = (int)(Math.random() * 10);
int second = (int)(Math.random() * 10);
int answer = first + second;
questionTxt = first + " + " + second;
return answer;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

correctAnswer();
TextView questionText = (TextView)findViewById(R.id.question);
questionText.setText(questionTxt + "");
}

【讨论】:

  • @LarryJing 如果你得到这个问题的答案投票,它可能对某人有用
  • 我必须等待一分钟才能接受它,我的投票不公开,因为我只有 10 声望 XD
【解决方案2】:

你应该在 onCreate 之后移动方法

   public class MainActivity extends AppCompatActivity{

    private boolean correct;
    private String questionTxt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        TextView questionText = (TextView)findViewById(R.id.question);
        int answer = correctAnswer();
        questionText.setText(answer+");

    }

    public int correctAnswer()
    {
        int first = (int)(Math.random() * 10);
        int second = (int)(Math.random() * 10);
        int answer = first + second;
        questionTxt = first + " + " + second;
        return answer;
    }
 }

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多