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

当此方法结束时,ArrayList将被清空

洪星文
2023-03-14

我有一个用来存储应用程序列表的方法。

public void storeApplication(String name, String item){
    peopleAttending.add(new Application(name, item));
}

它做了它应该做的事情,但是当方法完成时,包含在ArrayList中的数据也会被销毁。

我已经全局声明并实例化了ArrayList:

private ArrayList<Application> peopleAttending = new ArrayList<>();

所以我会想到,一旦对象被添加到ArrayList中,它就会被安全地存储,直到程序终止。

    public void saveBookingInfo(View view) {

        GuestsAttending sendApplication = new GuestsAttending();

        EditText applicantNameText = (EditText) findViewById(R.id.applicantNameTextField);
        EditText itemToBurnText = (EditText) findViewById(R.id.itemToBurnTextField);

        String appName = applicantNameText.getText().toString();
        String appItemToBurn = itemToBurnText.getText().toString();

        if (appItemToBurn.isEmpty() || appName.isEmpty()) {
            Toast.makeText(BookingScreen.this, "Please fill in all fields.", Toast.LENGTH_SHORT).show();
        }
        else {
            sendApplication.storeApplication(appName, appItemToBurn);
        }
    }

编辑-整个类:

public class GuestsAttending extends Activity {

    private ArrayList<Application> peopleAttending = new ArrayList<>();

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

    public void storeApplication(String name, String item){
        peopleAttending.add(new Application(name, item));
    }
}

共有1个答案

章心水
2023-03-14

您的客人延长活动课,因此不要这样:

GuestsAttending sendApplication = new GuestsAttending();  //remove this line

让系统处理创建活动。

我猜saveBookingInfo()也可能是guestsaccounting活动的成员,它是get的连线(例如)。一个按钮。

 类似资料:
  • 我是Android系统的新手,所以请原谅我。我的主要活动在警报管理器中创建警报,假设在特定的时间内发射,我的主要活动还创建广播接收器,假设接收警报发射的意图,一切都正常工作,直到任务管理器杀死我的应用程序。我已经检查了AlarmManager中的PendingIntent列表,并验证我的警报正在从警报管理器中删除,我试图添加服务并从服务中注册警报,我红了,可能是因为我的广播接收器的IntentFi

  • 问题内容: 我已编写此代码来加入ArrayList元素:是否可以对其进行更多优化?还是有其他更好的方法? 问题答案: 这就是著名的java.util.Collection团队的工作方式,所以我认为这应该很好;) 另外,这就是用达菲(Duffymo)的答案得到逗号分隔符的方法;)

  • 我的程序很简单。我有一个有2个方法的类。我有另一个类在那里调用这两个方法。当调用第一个方法时,初始化arraylist并填充一些对象,然后调用第二个方法,简单地告诉arraylist的大小并打印出来。我不明白为什么我总是得到一个空的时候,第二个方法被调用。然而,当我在第一个方法中打印数组时,我得到了大小和所有it元素。Arraylist是公共得..请看一下代码。 在第一班

  • 正如标题所说——如果我想关闭一个套接字连接,只要调用?另一边会发生什么? 或者,如果这不是应该走的路,那是什么?我必须通过套接字发送某种“完成”消息,这样对方就知道它也应该结束吗? 附加问题:java文档说 关闭此套接字还将关闭套接字的InputStream和OutputStream。 那么,仅仅关闭套接字就足够了,还是我也必须显式地关闭流(当然,假设我没有使用?

  • 我正在创建一个可以在公司内部轻松工作的子网管理器。现在我有了第一个窗口,在这里我可以添加新的子网--用‘添加子网’按钮。这将带您完成几个步骤。提供子网名、网络地址和子网掩码。 现在,我正在尝试打开第二个jFrame,它从overview页面的JList中打开选定的子网。在这里,我在将前面输入的值放入第二个JFrame的jTextFields中时遇到了问题。它保持为空,在经过调试模式之后,我看到在打

  • 我在服务器中看到以下(截断的)stacktrace。JBoss 7.1.1最终版日志文件: 检查Postgres日志文件会显示以下语句: 我使用的是JBoss 7.1.1 Final附带的Infinispan,即5.1.2。最终的 这就是我认为正在发生的事情: Infinispan尝试运行选择计数(*) 语句,以查看中是否有任何记录 这个错误意味着什么,以及如何解决它?