java - 如果可以的话,我可以在 android studio 中使用数组吗?那么如何在屏幕上显示数组的所有元素
问题描述
我想在数组的帮助下打印所有这些数字,而不是 ArrayList...
显示此错误消息:
2021-04-11 12:32:51.142 8075-8075/com.example.listviewtest E/AndroidRuntime:致命异常:主进程:com.example.listviewtest,PID:8075 java.lang.RuntimeException:无法启动活动 ComponentInfo{ com.example.listviewtest/com.example.listviewtest.UsingArray}:java.lang.NullPointerException:尝试在 android 的空对象引用上调用虚拟方法 'void android.widget.TextView.setText(java.lang.CharSequence)' .app.ActivityThread.performLaunchActivity(ActivityThread.java:3308) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3457) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在 android.app。 servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor。在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.ActivityThread$H.handleMessage(ActivityThread.java:2044) 处执行(TransactionExecutor.java:95) 在 android.os.Looper.loop(Looper .java:224) 在 android.app.ActivityThread.main(ActivityThread.java:7560) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit .java:539) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 引起:java.lang.NullPointerException:尝试调用虚拟方法 'void android.widget.TextView.setText(java. lang.CharSequence)' 在 com.example.listviewtest.UsingArray.onCreate(UsingArray.java:58) 在 android.app.Activity.performCreate(Activity.java:7894) 在 android.app.Activity.performCreate 的空对象引用(Activity.java:7881) 在 android.app.Instrumentation。callActivityOnCreate(Instrumentation.java:1307) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3283)
这是代码
包 com.example.listviewtest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.util.Arrays;
public class UsingArray extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_using_array);
String[] numbers = new String[20];
numbers[0] = ("One");
numbers[1] = ("Two");
numbers[2] = ("Three");
numbers[3] = ("Four");
numbers[4] = ("Five");
numbers[5] = ("Six");
numbers[6] = ("Seven");
numbers[7] = ("Eight");
numbers[8] = ("Nine");
numbers[9] = ("Ten");
numbers[10] = ("Eleven");
numbers[11] = ("Twelve");
numbers[12] = ("Thirteen");
numbers[13] = ("Fourteen");
numbers[14] = ("Fifteen");
numbers[15] = ("Sixteen");
numbers[16] = ("Seventeen");
numbers[17] = ("Eighteen");
numbers[18] = ("Nineteen");
numbers[19] = ("Twenty");
// LinearLayout arrayTextView = (LinearLayout) findViewById(R.id.arrayTextView);
// Log.v("UsingArray", "In index 0 = " + numbers[0]);
// Log.v("UsingArray", "In index 1 = " + numbers[1]);
// Log.v("UsingArray", "In index 2 = " + numbers[2]);
// Log.v("UsingArray", "In index 3 = " + numbers[3]);
// Log.v("UsingArray", "In index 4 = " + numbers[4]);
// Log.v("UsingArray", "In index 5 = " + numbers[5]);
// Log.v("UsingArray", "In index 6 = " + numbers[6]);
// Log.v("UsingArray", "In index 7 = " + numbers[7]);
// Log.v("UsingArray", "In index 8 = " + numbers[8]);
// Log.v("UsingArray", "In index 9 = " + numbers[9]);
// Log.v("UsingArray", "In index 10 = " + numbers[10]);
TextView textView = (TextView) findViewById(R.id.usingArrayTextView);
// for (int y = 0; y <= numbers.length - 1; y++) {
// textView.setText(Arrays.toString(new String[]{numbers[y]}));
// }
textView.setText(Arrays.toString(numbers));
}
}
解决方案
有两种方法:
下面的java代码在我的情况下工作正常:
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Arrays;
public class UsingArray extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_using_array);
String[] numbers = new String[20];
numbers[0] = ("One");
numbers[1] = ("Two");
numbers[2] = ("Three");
numbers[3] = ("Four");
numbers[4] = ("Five");
numbers[5] = ("Six");
numbers[6] = ("Seven");
numbers[7] = ("Eight");
numbers[8] = ("Nine");
numbers[9] = ("Ten");
numbers[10] = ("Eleven");
numbers[11] = ("Twelve");
numbers[12] = ("Thirteen");
numbers[13] = ("Fourteen");
numbers[14] = ("Fifteen");
numbers[15] = ("Sixteen");
numbers[16] = ("Seventeen");
numbers[17] = ("Eighteen");
numbers[18] = ("Nineteen");
numbers[19] = ("Twenty");
TextView textView = (TextView) findViewById(R.id.usingArrayTextView);
textView.setText(Arrays.toString(numbers));
}
}
布局文件
并且输出很好我没有得到任何空指针异常
推荐阅读
- python - Python:如何找到一个变量的响应相对于另一个变量的出现次数?
- c# - @Html.ActionLink 未正确链接到帐户/登录、帐户/注册、帐户/注销。不知道我错过了什么
- javascript - Webpack 没有在生产中最小化我的 JavaScript 文件
- javascript - 通过滚动和调整滚动大小在 about 部分使用 hero Image
- flutter - 如何将字节数据(图像)保存到 Flutter 的下载目录中?
- reactjs - 了解贝宝何时在订阅计划中付款
- c - 在 C 中初始化结构的建议方法
- node.js - Heroku - '@heroku/buildpack-registry 无法从 @heroku-cli/plugin-buildpacks 访问'
- java - (Android) 使用地图标记创建边界框并在 Google Map V2 中获取其宽度
- algorithm - 访问二进制矩阵中所有 1 的最短路径(允许访问 0 时)