2017-06-20 44 views
1

我使用retrofit 1.9获取字符串从一个PHP文件在服务器侧android M显示字符串数组元素这样的 -Android应用崩溃时在的setText的TextView

... 
String output = "";  
try {   
      BufferedReader reader = new BufferedReader(new InputStreamReader(result.getBody().in())); 
      output = reader.readLine(); 
    } 
catch (IOException e) { 
      ... 
    } 
    }); 
    } 
    arr = output.split("-"); 
    textviewvar.setText(arr[0]); 
... 

我已经测试了output string包含HelloWorld-2017和时我使用Toast显示了单个数组元素arr[0] and arr[1],它们按预期显示。 但是,当我试图setText(arr[0]),应用程序崩溃! 我知道数组元素不是空的,因为我每次都检查它们。 我该怎么办?

编辑:我试过setContentView(R.layout.activity_main),但应用程序继续崩溃。

在方法protected void onCreate(Bundle savedInstanceState)我已初始化textviewvar而变量具有类作用域。

+0

使用LogCat检查与您的崩溃相关的Java堆栈跟踪:https://stackoverflow.com/questions/23353173/uncomfort-myapp-has-stopped-how-can-i-solve-this确保您使用Log.e()或类似的调用来记录你“捕获”的任何异常。 – CommonsWare

回答

0

发布日志猫会很有用,它会显示崩溃发生的位置以及引发了什么异常。

我期望虽然textviewvar未被正确初始化。

在你的XML,你应该有类似下面的声明你的EditText

<EditText 
android:id="@+id/my_text_view 
android:width="match_parent" 
android:height="wrap_content" /> 

在你onCreate方法你必须调用后setContentView(),那么你应该初始化您的EditText您的XML中引用的ID。

EditText textviewvar = (EditText)findViewById(R.id.my_text_view); 
textviewvar.setText(arr[0]); 

检查你正在做这个,而一旦这样做,你的textviewvar不为空,如果是,它可能是你的EditText你给的ID,是不是在XML布局文件,你在你的setContentView调用中引用。

+0

在我的logcat文件中,它显示错误为java.lang.NullPointerException:尝试从空数组中读取但我认为数据正在输入到数组中。 – robstat7

+0

这听起来像你的数组没有得到初始化,我想你需要发布如何获取数据到数组中,以及logcat输出给任何人以帮助进一步 – Boardy