Android应用崩溃由于ResourcesNotFound

问题描述:

package com.example.michaelzhou.scraperapp; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.inputmethod.EditorInfo; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 


public class ScraperActivity extends AppCompatActivity { 

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

    final TextView display = (TextView) findViewById(R.id.txtDisplay); 
    //Button enter = (Button)findViewById(onKeyDown()); 
    final int[] displays = {184576, 38347, 28198, 643892, 38471872,  4783654, 1235433, 2324, 65344232, 43212, 63345543, 4321, 
      1554534, 65432, 324154, 7658434, 13543, 64534532, 6543563, 6543342, 7645354, 543322, 
      545324, 542232, 54353453, 456456, 345343453, 943242, 56454353, 1231216543, 765463532, 6453489, 43242, 54354, 5483958, 
      3485304, 2132151, 42345463, 23213445, 5432908, 9649372, 754938554}; 
    EditText input = (EditText) findViewById(R.id.txtEdit); 
    input.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) 
      || (actionId == EditorInfo.IME_ACTION_DONE)) { 
       int rando = (int) (Math.random() * displays.length); 
       display.setText(displays[rando]); 
       return true; 
      } 

      return false; 
     } 
    }); 




} 


} 

当按下“完成”键,文本视图应该显示来自阵列显示的随机数。但是,当它被按下时,应用程序崩溃。该终端显示StringResourceNotFound异常错误。我应该如何解决这个问题?Android应用崩溃由于ResourcesNotFound

+0

当发生崩溃时,始终包含完整的堆栈跟踪以帮助诊断。 –

这是因为你使用int设置,而不是字符串文本

display.setText(显示器[RANDO]);

应该首先解析INT到字符串,如:

display.setText(显示器[RANDO] + “”);

+0

非常感谢!它完美解决了! –

+0

没有问题的朋友,并且不要忘记将它标记为接受的答案,如果它帮助你:) –

TextView.setText(int) 会尝试在您的资源文件中查找值。

将int转换为字符串