通过外部方法调用将对象作为参数传递

时间:2015-04-21 12:27:59

标签: java android object parameter-passing

我有一个需要传递给ArrayList的对象。 ArrayList包含在另一个类的外部方法中。

我已经调试了程序,并知道传递给“应用程序”的信息。构造函数正被放入“应用程序”中。宾语。我的问题是将它从这里转移到' GuestsAttending'方法

非常感谢任何帮助。

预订屏幕方法:

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 {
        Application app = new Application(appItemToBurn, appName);
        sendApplication.getGuestsAttending(app);

        this.finish();
    }
}

GuestsAttending Method:

public void getGuestsAttending(Application app){
    peopleAttending.add(app);
}

申请类:

public class Application {

    private String name;
    private String item;

    public Application(String applicantName, String applicantItem) {
        name = applicantName;
        item = applicantItem;
    }
}

2 个答案:

答案 0 :(得分:2)

为清楚起见,将“getGuestAttending”更改为“addGuestAttending”。如果“peopleAttending”是一个数组,那么您的方法将无效。将“peopleAttending”更改为List或Set,然后它将起作用。如果“peopleAttending”需要是一个数组,除非您声明它足以容纳所有客人,否则您无法向其中添加项目。然后,您必须跟踪访客的数量,以便知道在哪里插入新客人。换句话说,不要使用数组,请使用List:

List attendingGuests = new LinkedList();

答案 1 :(得分:0)

我发现了一个不同的解决方案。我没有在另一个类中创建对象并将其作为参数传递给外部方法调用,而是在外部方法中创建了对象,并将几个字符串传递给该方法,我将其传递给另一个类的构造函数以使其成为方法中的对象。