Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setText使应用程序崩溃_Java_Android - Fatal编程技术网

Java setText使应用程序崩溃

Java setText使应用程序崩溃,java,android,Java,Android,我正在尝试制作一个应用程序,它有一个计数器,每当onStart函数实现时计数器都会增加 package com.example.android.lifecycle; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; import com.example.an

我正在尝试制作一个应用程序,它有一个计数器,每当onStart函数实现时计数器都会增加

package com.example.android.lifecycle;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.example.android.lifecycle.util.StatusTracker;
import com.example.android.lifecycle.util.Utils;

import static com.example.android.lifecycle.R.layout.activity_a;

public class ActivityA extends Activity{

private String mActivityName;
private TextView mStatusView;
private TextView mStatusAllView;
private StatusTracker mStatusTracker = StatusTracker.getInstance();
int count = 0;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(activity_a);

    mActivityName = getString(R.string.activity_a);
    mStatusView = (TextView)findViewById(R.id.status_view_a);
    mStatusAllView = (TextView)findViewById(R.id.status_view_all_a);

    mStatusTracker.setStatus(mActivityName, getString(R.string.on_create));
    Utils.printStatus(mStatusView, mStatusAllView);

    TextView DisplayText = (TextView) findViewById(R.id.count_id);
    count ++;

    DisplayText.setText(count);
}

@Override
protected void onResume() {
    super.onResume();
    mStatusTracker.setStatus(mActivityName, getString(R.string.on_resume));
    Utils.printStatus(mStatusView, mStatusAllView);
}
最后一行“DisplayText.setText(count);”使应用程序崩溃
如果有人能在这方面帮助我,我将不胜感激。

这是因为count是一个int,而setText只接受字符串

试试这个:

DisplayText.setText(Integer.toString(count));

这是因为count是int,而setText只接受字符串

试试这个:

DisplayText.setText(Integer.toString(count));

首先,我建议您不要以大写字母开头变量名:
displayText
,而不是
displayText

第二件事是,你不需要做:

count++;
DisplayText.setText(count);
++
的全部目的是缩短代码。只需使用
DisplayText.setText(++count)

第三:
onCreate
方法只有在您的活动第一次创建时才会被调用。当您的活动被销毁时,
count
变量将消失。因此,您的计数器将始终显示
1

最后,关于你的问题,我有点晚了,因为@Zino已经回答了。当您向TextView.setText()方法发送一个整数时,它认为它是一个字符串资源id,并尝试在资源之间查找它,如下所述:

在将整数值发送到setText方法之前,需要将其转换为字符串。以下是您的选择:

DisplayText.setText(Integer.toString(++count));


首先,我建议您不要以大写字母开头变量名:
displayText
,而不是
displayText

第二件事是,你不需要做:

count++;
DisplayText.setText(count);
++
的全部目的是缩短代码。只需使用
DisplayText.setText(++count)

第三:
onCreate
方法只有在您的活动第一次创建时才会被调用。当您的活动被销毁时,
count
变量将消失。因此,您的计数器将始终显示
1

最后,关于你的问题,我有点晚了,因为@Zino已经回答了。当您向TextView.setText()方法发送一个整数时,它认为它是一个字符串资源id,并尝试在资源之间查找它,如下所述:

在将整数值发送到setText方法之前,需要将其转换为字符串。以下是您的选择:

DisplayText.setText(Integer.toString(++count));


setText有多个重载

// This takes a string id (R.string.hello).
// displayText.setText(R.string.hello);
setText (int resid)

// This takes a string in code.
// displayText.setText("Hello");
setText (CharSequence text)
您现在正在使用第一个,因为您正在传递字符串id,这将引发异常,因为找不到字符串资源id

你需要这个

displayText.setText(String.valueOf(count));

setText有多个重载

// This takes a string id (R.string.hello).
// displayText.setText(R.string.hello);
setText (int resid)

// This takes a string in code.
// displayText.setText("Hello");
setText (CharSequence text)
您现在正在使用第一个,因为您正在传递字符串id,这将引发异常,因为找不到字符串资源id

你需要这个

displayText.setText(String.valueOf(count));

只接受字符串?你在看文档吗?它接受
R.string
资源,这些资源是int@当然,它接受R.string资源,但这些是对charsequences的引用。对于他想做的事情,我认为可以说它为他的用例接受字符串。但你是对的,谢谢你澄清。只接受字符串?你在看文档吗?它接受
R.string
资源,这些资源是int@当然,它接受R.string资源,但这些是对charsequences的引用。对于他想做的事情,我认为可以说它为他的用例接受字符串。但你是对的,谢谢你的澄清。