sách gpt4 ai đã đi

java - Activity 无意识启动时的 NULL 指针。空对象引用上的 'int java.lang.String.hashCode()'

In lại 作者:行者123 更新时间:2023-12-02 04:26:54 26 4
mua khóa gpt4 Nike

关于我正在尝试做的事情的简要描述:

  1. 这是一个简单的消息应用程序

  2. 在我的第一个 Activity 中,我有一个 ListView 和几个按钮。

    • 用户按下任意按钮,有关按下哪个按钮的信息将存储在共享偏好设置中。
    • 当用户按下任何列表项时,会触发一个 Intent,将他带到新的 Activity,其中 putExtra() 从 Intent 中分析按下的列表项。
  3. 在第二个 Activity 中,根据 Intent 带来的值,确定 newString 的字符串值。

câu hỏi当屏幕旋转时,应用程序崩溃并出现此错误 -

Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference

以下是第二个 Activity 中的代码 -

String newString = "Default_Channel";

public static final String MyPREFERENCES = "MyPrefs" ;
SharedPreferences sharedpreferences;

@Ghi đè
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat2);

.
.
.

sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

String restoredText = sharedpreferences.getString("CurrentUser", null);
if (restoredText != null) {
currentUserName = sharedpreferences.getString("CurrentUser", "unknown");//"unknown" is the default value.
.
.
.
}
khác
{
currentUser.setText("not signed in");
}


if (savedInstanceState == null)
{
Bundle extras = getIntent().getExtras();
if(extras == null)
{
newString= "Default_Channel";
}
khác
{
newString= extras.getString("LIST_ITEM_CLICKED");
}
}
khác
{
newString= (String) savedInstanceState.getSerializable("LIST_ITEM_CLICKED");
}
// *** GETTING ERROR HERE On this line *** //

switch (newString)
{
case "User_1":
.
.
.
phá vỡ;
case "User_2":
.
.
.
phá vỡ;
case "User_3":
.
.
.
phá vỡ;
case "Default_Channel":
.
.
.
phá vỡ;
}

我在代码中提到了 NULL 指针异常!它位于 Else 语句和 Switch 之间。

另外,我明白什么是 NULL 指针异常,这不是我要问的。当屏幕旋转时,即当 Activity 无意中重新启动时,我得到 NULL 指针。

我是 Android 编程新手,无法弄清楚这里出了什么问题。

编辑:这不是与“什么是 NULL 指针异常”重复的问题。

1 Câu trả lời

我看到你用这个:

newString= (String) savedInstanceState.getSerializable("LIST_ITEM_CLICKED");

那么你会重写onSaveInstanceState?
如果没有,请覆盖它并保存当前的“LIST_ITEM_CLICKED”值.

我认为你的问题是因为当旋转时, Activity 是用savedInstanceState重新创建的,但你没有保存你的值,所以会发生NPE。

关于java - Activity 无意识启动时的 NULL 指针。空对象引用上的 'int java.lang.String.hashCode()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32033757/

26 4 0
Bài viết được đề xuất: java - Apache Thrift java 最低要求
Bài viết được đề xuất: java - 使用fasterxml从JSON创建Java对象时出现异常
Bài viết được đề xuất: Làm thế nào để thực thi Java từ Java?
Bài viết được đề xuất: java - 检查数组中最大和最小元素的数量
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com