当前位置: 首页 > 知识库问答 >
问题:

使用getStringArrayListExtra时崩溃

杨柏
2023-03-14

我使用getStringArrayListExtra()搜索将列表从一个活动传输到另一个活动。这在第一次(从MainActivity到Diag2Activity)时运行良好,但在第二次(从Diag2Activity到SSToActivity)时应用程序崩溃。

每次我使用相同的方法:第一次活动:

ArrayList<String> BDD = new ArrayList<String>();
BDD.add(tri);

Intent Diag2ActivityIntent = new Intent(MainActivity.this, Diag2Activity.class);
Diag2ActivityIntent.putStringArrayListExtra("BDD", BDD);
startActivity(Diag2ActivityIntent);

第二项活动:

Intent i = getIntent();
    ArrayList<String> BDD = i.getStringArrayListExtra("BDD");

谁能告诉我错误可能来自哪里?提前谢谢

请在下面找到完整的代码

主要活动。JAVA

public class MainActivity extends AppCompatActivity {

Button mboutonContinuer;
TextView medit_text_gene_1;

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

    //appel des différents éléments de l'interface
    mboutonContinuer = findViewById(R.id.boutonContinuer);
    medit_text_gene_1 = findViewById(R.id.edit_text_gene_1);


    //Action quand on clique sur le bouton "continuer" :
    mboutonContinuer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //Récupération des valeurs inscrites dans les Edittext
            String tri = medit_text_gene_1.getText().toString();


            //écriture de la Base De Données
            ArrayList<String> BDD = new ArrayList<String>();
            BDD.add(tri);

            //En attendant de pouvoir ajouter un 2ème contact
            BDD.add("rien");

            //Redirection sur la prochaine page
            Intent Diag2ActivityIntent = new Intent(MainActivity.this, Diag2Activity.class);
            Diag2ActivityIntent.putStringArrayListExtra("BDD", BDD);
            startActivity(Diag2ActivityIntent);


        }
    });
}

}

主要活动。xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Controller.MainActivity"
>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_marginTop="30dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Trigramme du diagnostiqueur"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginLeft="30dp"/>

        <EditText
            android:id="@+id/edit_text_gene_1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_tech"
            android:hint="XXX"
            android:inputType="textCapCharacters"
            android:maxLength="3"
            android:paddingHorizontal="30dp" />

        <Button
            android:id="@+id/boutonContinuer"
            android:layout_width="220dp"
            android:layout_height="68dp"
            android:layout_marginTop="40dp"
            android:layout_marginRight="40dp"
            android:layout_gravity="right"
            android:text="Continuer ->"
            />


    </LinearLayout>
</ScrollView>

诊断2Activity.java

public class Diag2Activity extends AppCompatActivity {

Button mboutonContinuer2;
TextView medit_text_sst_1;



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


    Intent i = getIntent();
    ArrayList<String> BDD = i.getStringArrayListExtra("BDD");

    mboutonContinuer2 = findViewById(R.id.boutonContinuer2);
    medit_text_sst_1 = findViewById(R.id.edit_text_nb_ech);



    mboutonContinuer2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Récupération des valeurs inscrites dans les Edittext
            String brt = medit_text_sst_1.getText().toString();

            //écriture de la base de données
            BDD.add(brt);

            //Redirection vers la prochaine page
            Intent SstO1ActivityIntent = new Intent(Diag2Activity.this, SstO1Activity.class);
            SstO1ActivityIntent.putStringArrayListExtra("BDD", BDD);
            startActivity(SstO1ActivityIntent);

        }
    });
}

}

活动2。xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Controller.Diag2Activity">




<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >


        <EditText
            android:id="@+id/edit_text_nb_ech"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_ech4"
            android:hint="X"
            android:inputType="number"
            android:maxLength="2"
            android:paddingHorizontal="30dp" />

        <Button
            android:id="@+id/boutonContinuer2"
            android:layout_width="220dp"
            android:layout_height="68dp"
            android:layout_gravity="right"
            android:layout_marginTop="40dp"
            android:layout_marginRight="40dp"
            android:text="Continuer ->" />
    </LinearLayout>
</ScrollView>

SstO1Activity.java

public class SstO1Activity extends AppCompatActivity {

Button mboutonContinuer3;
Button mboutonech;


Intent i = getIntent();
ArrayList<String> BDD = i.getStringArrayListExtra("BDD");


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

    mboutonContinuer3 = findViewById(R.id.boutonContinuer3);

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

            BDD.add("cc");

            Intent WorkinprogressActivityIntent = new Intent(SstO1Activity.this, WorkinprogressActivity.class);
            startActivity(WorkinprogressActivityIntent);
        }
    });
}

活动1。xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Controller.SstO1Activity">



<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="40dp"
            android:gravity="left"
            android:text="Ajouter un commentaire si besoins"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="120dp"
            android:id="@+id/editText_test1"
            android:background="#DCDCDC"
            android:gravity="top|left"
            android:inputType="textMultiLine|text"
            android:padding="10dp"
            android:hint="Commentaire..."/>

        <Button
            android:id="@+id/boutonContinuer3"
            android:layout_width="220dp"
            android:layout_height="68dp"
            android:layout_gravity="right"
            android:layout_marginTop="20dp"
            android:layout_marginRight="40dp"
            android:text="Finir le diagnostic" />
    </LinearLayout>
</ScrollView>

共有1个答案

厉高逸
2023-03-14

将下面的代码放入OnCreate方法的SstO1Activity.java文件中。

Intent i = getIntent();
ArrayList<String> BDD = i.getStringArrayListExtra("BDD");
 类似资料:
  • 问题内容: POI方法引发了一个我无法解决的异常: 这个错误 在我的代码中,将数据放入列后将调用该方法: 有人对此有任何帮助的线索吗? 提前致谢。 问题答案: 您已标记此android。在android上,大多数(所有?)AWT类都不可用。但是POI需要a 来计算列大小。 作为一种变通方法,代替您的来电通过。可以通过将该列中显示的最大字符数乘以一个因子来计算的近似值。首先尝试为比例字体设置大约的值

  • 我正在尝试使用地址消毒剂与MSVC。 Visual Studio安装程序说我有“Visual Studio Community 2019”16.9.0版。 我有最基本的C++程序: cmakelists.txt也是非常基本的: 程序在调试和发布模式下都能正确地编译和链接。在发布模式下,我有以下警告,这似乎是完全合法的: LINK:warning LNK4302:请将“/debug”添加到LINK命

  • 问题内容: 我想每5分钟检查一次服务中的实际时间,然后根据时间将手机静音或取消静音。早些时候,我尝试在线程.sleep(300000)的末尾使用while(true),但是它总是与ANR一起崩溃,所以我尝试使用计时器任务,但是现在它在带有NullPointerException 的行之后崩溃 LogCat: 问题答案: 您需要在onCreate内初始化audioManager。

  • 我有一个非常奇怪的问题。 我所设置的是一个文件,它向雅虎财经网站发送一个url请求,然后使用结果在JFrame中绘制一个JFreeChart。 我就是不明白以下几点: 对于某些url请求,JFrame崩溃 它会启动,但只显示一个白色屏幕。而对于其他请求,我的程序运行良好。 例如: 本请求: 很好。 但是这个要求: 导致错误。 这怎么可能? 我知道以下几点: JFrame崩溃,但JVM没有注意到它(

  • 主要活动 碎片 这是一个简单对话框的代码。 这里有一个我从中学习的链接。如果我只需通过调用按钮创建对话框,它就可以完全正常工作。

  • 我在MacOS上创建了一个新的Android应用程序项目,当我试图在Android Studio中更改时,我遇到了这个错误。