【问题标题】:Passing an object as an argument through an external method call通过外部方法调用将对象作为参数传递
【发布时间】:2015-04-21 12:27:59
【问题描述】:

我有一个需要传递给 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();
    }
}

参会方式:

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;
    }
}

【问题讨论】:

  • getGuestsAttending 方法访问nameitem 使这两个字段公开或在Application 类中创建getter-setter 方法
  • ρяσѕρєя K 我正在使用 Application 类来制作对象,然后可以在 getGuestsAttending 方法中使用该对象。 peopleAttending 是 ArrayList :) -- 我很难将对象从一个类移动到另一个类,因为当我将它作为参数传递时,它不会进入 arrayList。
  • 如果你想使用Bundle在Activity之间传递一些对象的ArrayList,你的对象应该实现SerializableParcellable
  • 我不知道这是尝试单例类来保存应用程序对象的确切解决方案。

标签: java android object parameter-passing


【解决方案1】:

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

ListatingGuests = new LinkedList();

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-05
      • 2020-06-05
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多