java - Arraylist<Hashmap> Intent 上的空对象引用

标签 java android android-intent arraylist

我在将数组列表传递到下一个 Activity 时遇到问题。 这是我的错误代码。

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.content.Intent.getSerializableExtra(java.lang.String)' on a null object reference

据我了解,我正在尝试获取一个不存在的数组列表。 我确保 Arraylist 已填充并且我的 Intent 值是正确的,但我仍然收到错误。

创建数组列表

ArrayList<HashMap<String, String>> names = new ArrayList<HashMap<String, String>>();

创建 Intent

Intent intent = new Intent(First.this, Second.class);
            intent.putExtra("names", names);
            startActivity(intent);

获取 Intent

Intent intent = getIntent();
ArrayList<HashMap<String, String>> usernamen = (ArrayList<HashMap<String, String>>) intent.getSerializableExtra("names");

如上所述,Arraylist 已通过正确填充

name = new HashMap<String, String>();
    name.put("Name", spielername.getText().toString());
    name.put("Gender", gender.getText().toString());
    names.add(name);

如果有人需要更多信息,我很乐意提供。

编辑:

gobutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if(names.size() < 2){
                Toast.makeText(Spieler.this, "No Informations", Toast.LENGTH_SHORT).show();
                return;
            }
            Intent intent = new Intent(Spieler.this, Games.class);
            intent.putExtra("level", level.getProgress());
            intent.putExtra("names", names);
            startActivity(intent);
        }
    });

按钮将我发送到第二个 Activity ,因此必须填充数组。

最佳答案

 ArrayList<HashMap<String,String>> names = new ArrayList<>();

 HashMap<String,String> map = new HashMap<>();

 map.put("Name", "Spieler");

 map.put("Gender", "male");

 names.add(map);

发送带有 Intent 的数据

Bundle bundle = new Bundle();

bundle.putSerializable("keyName",names);

Intent i=new Intent(v.getContext(), SecondActivity.class);

i.putExtras(bundle);

startActivity(i);

从Intent中获取数据

Intent intent = this.getIntent();

Bundle bundle = intent.getExtras();

Log.e("SecondActivity","yourArrayList--"+(ArrayList<HashMap<String,String>>)bundle.getSerializable("keyName"));

关于java - Arraylist<Hashmap> Intent 上的空对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54778853/

相关文章:

java - 开始另一个 Activity 时不破坏主要 Activity

android - 无法解析符号 'Theme.Material3.Light.NoActionBar' (Android Studio)

java - 迁移到 AndroidX 后如何更新所有库?

java - "Automatically lock after n seconds"时未收到 ACTION_USER_PRESENT

android - FCM 通知 onclick 未打开所需的 Activity

android - 如何检查android中的互联网连接?

java - 从启动脚本设置类路径不起作用

java - 在哪里存储 Java-Servlets 常量

java - 使用泛型 : Instantiating an object of a generic class with parent and child values in generic

java - invokeAndWait Java