Android应用程序崩溃 - 使用方法来显示整数

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)); 
} 
+0

在设置的文本中,你只能使用一个字符串。那是为什么它错了? –

+0

是的,如果你需要显示你需要使用String.ValueOf()方法转换为字符串的数字。一切安好。 –

设置文本上的TextView,你必须使用setText()方法 并且此方法以字符串作为参数 因此 您必须解析int到字符串

以上所有答案都是正确的,如果我们将String值赋予textView,它将正常工作,因此给文本视图赋予int值是错误的。答案是

那么究竟是什么根源呢? 原因是,如果你设置了int值,它会认为是资源id(见API),所以它会试着找到相关的资源。大多数它不会找到任何价值,它会给资源没有发现异常。

我们如何解决这个问题, 如果您确定该值不是资源,只需将int值转换为字符串,并将其设置为TextView,即可正常工作。

只使用myTextView.setText(Counter+"");

setText(int) - >这种方法从资源查找字符串。