Android应用程序崩溃 - 使用方法来显示整数
问题描述:
当我尝试运行代码时,它只是崩溃。在我使用之前:Android应用程序崩溃 - 使用方法来显示整数
myTextView.setText(Counter)
这是工作,但现在当我试图使它更容易,更高效,它不能通过使用方法工作。为什么?
我想制作一个大亨应用程序,所以我想使用一种方法,以便更容易地显示用户在玩游戏时的金额。在该方法中,计算会更清晰。
package com.example.navjeevenmann.mytycoon;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity
{
private Button myButton;
private int Counter = 0;
private Button myButton2;
private TextView myTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton = (Button) findViewById(R.id.button);
myButton2 = (Button) findViewById(R.id.button2);
myTextView = (TextView) findViewById(R.id.textView);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Counter = Counter(Counter);
Display(Counter);
}
});
myButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
});
Bundle store = new Bundle();
store.putInt("count", Counter);
}
public int Counter(int Counter) {
Counter++;
return Counter;
}
public void Display(int Counter) {
myTextView.setText(Counter);
}
}
答
你在你的代码中的错误可能是这样的:
public void Display(int Counter) {
myTextView.setText(Counter);
}
尝试改变:
public void Display(int Counter) {
myTextView.setText(String.ValueOf(Counter));
}
答
设置文本上的TextView,你必须使用setText()方法 并且此方法以字符串作为参数 因此 您必须解析int到字符串
答
以上所有答案都是正确的,如果我们将String值赋予textView,它将正常工作,因此给文本视图赋予int值是错误的。答案是否
那么究竟是什么根源呢? 原因是,如果你设置了int值,它会认为是资源id(见API),所以它会试着找到相关的资源。大多数它不会找到任何价值,它会给资源没有发现异常。
我们如何解决这个问题, 如果您确定该值不是资源,只需将int值转换为字符串,并将其设置为TextView,即可正常工作。
答
只使用myTextView.setText(Counter+"");
setText(int)
- >这种方法从资源查找字符串。
在设置的文本中,你只能使用一个字符串。那是为什么它错了? –
是的,如果你需要显示你需要使用String.ValueOf()方法转换为字符串的数字。一切安好。 –