Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-从其他活动中检索ArrayList_Java_Android_Arraylist - Fatal编程技术网

Java Android-从其他活动中检索ArrayList

Java Android-从其他活动中检索ArrayList,java,android,arraylist,Java,Android,Arraylist,我有以下活动,这是一个独立于主活动的类 public class Calculation_getInventory { SQLiteDatabase db; private static Calculation_getInventory _instance = null; public static Calculation_getInventory getInstance(){ if(_instance == null) _instance= new Calculatio

我有以下活动,这是一个独立于主活动的类

public class Calculation_getInventory {
SQLiteDatabase db;
private static Calculation_getInventory _instance = null;
public static Calculation_getInventory getInstance(){
    if(_instance == null)
        _instance= new Calculation_getInventory();
    return _instance;
  }
  private Calculation_getInventory(){} 

  public void getInventory() {
    db = SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
    Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
    List InventoryList = new ArrayList();
    if (c.moveToFirst()) {
        do {
            Double amountLeft = Double.parseDouble(c.getString(4));
            if (amountLeft != 0) {
                InventoryList.add(c.getString(1));
            }
        } while (c.moveToNext());
    }
    java.util.Collections.sort(InventoryList);
    InventoryList.add(0, "No Selection");

  }
}
在我的计算类(MainActivity)中,我进行了以下调用以获取该活动

Calculation_getInventory.getInstance().getInventory();
我的问题是如何将ArrayList从Calculation\u getInventory传递到Calculation?

您的
getInventory()
没有返回任何内容。 将其设置为返回值
ArrayList
,并让它返回您的列表

示例

你有:

public void getStuff() {
    int ret = 6;
}
将其转换为:

public int getStuff() {
    int ret = 6;
    return ret;
}
在另一个类中,可以对类的对象调用
getStuff()
,如下所示:

int stuff = YourClass.getInstance().getStuff();
您的
getInventory()
没有返回任何内容。 将其设置为返回值
ArrayList
,并让它返回您的列表

示例

你有:

public void getStuff() {
    int ret = 6;
}
将其转换为:

public int getStuff() {
    int ret = 6;
    return ret;
}
在另一个类中,可以对类的对象调用
getStuff()
,如下所示:

int stuff = YourClass.getInstance().getStuff();
您的
getInventory()
没有返回任何内容。 将其设置为返回值
ArrayList
,并让它返回您的列表

示例

你有:

public void getStuff() {
    int ret = 6;
}
将其转换为:

public int getStuff() {
    int ret = 6;
    return ret;
}
在另一个类中,可以对类的对象调用
getStuff()
,如下所示:

int stuff = YourClass.getInstance().getStuff();
您的
getInventory()
没有返回任何内容。 将其设置为返回值
ArrayList
,并让它返回您的列表

示例

你有:

public void getStuff() {
    int ret = 6;
}
将其转换为:

public int getStuff() {
    int ret = 6;
    return ret;
}
在另一个类中,可以对类的对象调用
getStuff()
,如下所示:

int stuff = YourClass.getInstance().getStuff();

不完全确定要在此处实现什么,但getInventory()应返回值,而不是:

public void getInventory()
应该是:

public ArrayList getInventory()
并应返回
InventoryList

public ArrayList getInventory() {
    db = SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
    Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
    List InventoryList = new ArrayList();
    if (c.moveToFirst()) {
        do {
            Double amountLeft = Double.parseDouble(c.getString(4));
            if (amountLeft != 0) {
                InventoryList.add(c.getString(1));
            }
        } while (c.moveToNext());
    }
    java.util.Collections.sort(InventoryList);
    InventoryList.add(0, "No Selection");

    return InventoryList;
}

不完全确定要在此处实现什么,但getInventory()应返回值,而不是:

public void getInventory()
应该是:

public ArrayList getInventory()
并应返回
InventoryList

public ArrayList getInventory() {
    db = SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
    Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
    List InventoryList = new ArrayList();
    if (c.moveToFirst()) {
        do {
            Double amountLeft = Double.parseDouble(c.getString(4));
            if (amountLeft != 0) {
                InventoryList.add(c.getString(1));
            }
        } while (c.moveToNext());
    }
    java.util.Collections.sort(InventoryList);
    InventoryList.add(0, "No Selection");

    return InventoryList;
}

不完全确定要在此处实现什么,但getInventory()应返回值,而不是:

public void getInventory()
应该是:

public ArrayList getInventory()
并应返回
InventoryList

public ArrayList getInventory() {
    db = SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
    Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
    List InventoryList = new ArrayList();
    if (c.moveToFirst()) {
        do {
            Double amountLeft = Double.parseDouble(c.getString(4));
            if (amountLeft != 0) {
                InventoryList.add(c.getString(1));
            }
        } while (c.moveToNext());
    }
    java.util.Collections.sort(InventoryList);
    InventoryList.add(0, "No Selection");

    return InventoryList;
}

不完全确定要在此处实现什么,但getInventory()应返回值,而不是:

public void getInventory()
应该是:

public ArrayList getInventory()
并应返回
InventoryList

public ArrayList getInventory() {
    db = SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
    Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
    List InventoryList = new ArrayList();
    if (c.moveToFirst()) {
        do {
            Double amountLeft = Double.parseDouble(c.getString(4));
            if (amountLeft != 0) {
                InventoryList.add(c.getString(1));
            }
        } while (c.moveToNext());
    }
    java.util.Collections.sort(InventoryList);
    InventoryList.add(0, "No Selection");

    return InventoryList;
}

只需为Calculation\u getInventory类创建一个InventoryList作为全局,并添加一个getter setter方法

public class Calculation_getInventory {
List InventoryList = new ArrayList(); // create global var of list
SQLiteDatabase db;
private static Calculation_getInventory _instance = null;

// call this method to get arraylist /list of inventory
public List getInventoryList()
{
    if(InventoryList==null)
          return new ArrayList();
    InventoryList;
}

public static Calculation_getInventory getInstance(){
if(_instance == null)
    _instance= new Calculation_getInventory();
return _instance;
}
private Calculation_getInventory(){} 

public void getInventory() {
db =    SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
//List InventoryList = new ArrayList(); comment this line and declare globally
if (c.moveToFirst()) {
    do {
        Double amountLeft = Double.parseDouble(c.getString(4));
        if (amountLeft != 0) {
            InventoryList.add(c.getString(1));
        }
    } while (c.moveToNext());
}
java.util.Collections.sort(InventoryList);
InventoryList.add(0, "No Selection");

 }
}
现在只需使用Calculation\u getInventory对象调用此方法

Calculation_getInventory i=Calculation_getInventory.getInstance().getInventory();
List list=i.getInventoryList(); 

只需为Calculation\u getInventory类创建一个InventoryList作为全局,并添加一个getter setter方法

public class Calculation_getInventory {
List InventoryList = new ArrayList(); // create global var of list
SQLiteDatabase db;
private static Calculation_getInventory _instance = null;

// call this method to get arraylist /list of inventory
public List getInventoryList()
{
    if(InventoryList==null)
          return new ArrayList();
    InventoryList;
}

public static Calculation_getInventory getInstance(){
if(_instance == null)
    _instance= new Calculation_getInventory();
return _instance;
}
private Calculation_getInventory(){} 

public void getInventory() {
db =    SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
//List InventoryList = new ArrayList(); comment this line and declare globally
if (c.moveToFirst()) {
    do {
        Double amountLeft = Double.parseDouble(c.getString(4));
        if (amountLeft != 0) {
            InventoryList.add(c.getString(1));
        }
    } while (c.moveToNext());
}
java.util.Collections.sort(InventoryList);
InventoryList.add(0, "No Selection");

 }
}
现在只需使用Calculation\u getInventory对象调用此方法

Calculation_getInventory i=Calculation_getInventory.getInstance().getInventory();
List list=i.getInventoryList(); 

只需为Calculation\u getInventory类创建一个InventoryList作为全局,并添加一个getter setter方法

public class Calculation_getInventory {
List InventoryList = new ArrayList(); // create global var of list
SQLiteDatabase db;
private static Calculation_getInventory _instance = null;

// call this method to get arraylist /list of inventory
public List getInventoryList()
{
    if(InventoryList==null)
          return new ArrayList();
    InventoryList;
}

public static Calculation_getInventory getInstance(){
if(_instance == null)
    _instance= new Calculation_getInventory();
return _instance;
}
private Calculation_getInventory(){} 

public void getInventory() {
db =    SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
//List InventoryList = new ArrayList(); comment this line and declare globally
if (c.moveToFirst()) {
    do {
        Double amountLeft = Double.parseDouble(c.getString(4));
        if (amountLeft != 0) {
            InventoryList.add(c.getString(1));
        }
    } while (c.moveToNext());
}
java.util.Collections.sort(InventoryList);
InventoryList.add(0, "No Selection");

 }
}
现在只需使用Calculation\u getInventory对象调用此方法

Calculation_getInventory i=Calculation_getInventory.getInstance().getInventory();
List list=i.getInventoryList(); 

只需为Calculation\u getInventory类创建一个InventoryList作为全局,并添加一个getter setter方法

public class Calculation_getInventory {
List InventoryList = new ArrayList(); // create global var of list
SQLiteDatabase db;
private static Calculation_getInventory _instance = null;

// call this method to get arraylist /list of inventory
public List getInventoryList()
{
    if(InventoryList==null)
          return new ArrayList();
    InventoryList;
}

public static Calculation_getInventory getInstance(){
if(_instance == null)
    _instance= new Calculation_getInventory();
return _instance;
}
private Calculation_getInventory(){} 

public void getInventory() {
db =    SQLiteDatabase.openDatabase("/data/data/com.sjhdevelopment.shaunharrison.myejuiceapp/databases/EJuiceData.db", null, 0);
Cursor c = db.rawQuery("SELECT * FROM Inventory", null);
//List InventoryList = new ArrayList(); comment this line and declare globally
if (c.moveToFirst()) {
    do {
        Double amountLeft = Double.parseDouble(c.getString(4));
        if (amountLeft != 0) {
            InventoryList.add(c.getString(1));
        }
    } while (c.moveToNext());
}
java.util.Collections.sort(InventoryList);
InventoryList.add(0, "No Selection");

 }
}
现在只需使用Calculation\u getInventory对象调用此方法

Calculation_getInventory i=Calculation_getInventory.getInstance().getInventory();
List list=i.getInventoryList(); 

嗨,原因是,我的主要活动是相当充分,它一直说它跳过帧,所有时间,所以我试图得到一些较重的代码从主活动,以加快它的一个比特,也许你应该考虑执行一些东西在另一个线程代替,使用异步等,所以我所做的以上将没有什么区别?对不起,我对安卓系统还很陌生!如果它在UI线程上运行,则可能不会。这是一个很好的阅读:嗨,原因是我的主要活动是相当充分,它一直说它跳过帧,所有的时间,所以我试图得到一些较重的代码从主活动,以加快它的一个比特,也许你应该考虑执行一些东西在另一个线程,而不是使用异步等,所以我上面所做的不会有什么不同?对不起,我对安卓系统还很陌生!如果它在UI线程上运行,则可能不会。这是一个很好的阅读:嗨,原因是我的主要活动是相当充分,它一直说它跳过帧,所有的时间,所以我试图得到一些较重的代码从主活动,以加快它的一个比特,也许你应该考虑执行一些东西在另一个线程,而不是使用异步等,所以我上面所做的不会有什么不同?对不起,我对安卓系统还很陌生!如果它在UI线程上运行,则可能不会。这是一个很好的阅读:嗨,原因是我的主要活动是相当充分,它一直说它跳过帧,所有的时间,所以我试图得到一些较重的代码从主活动,以加快它的一个比特,也许你应该考虑执行一些东西在另一个线程,而不是使用异步等,所以我上面所做的不会有什么不同?对不起,我对安卓系统还很陌生!如果它在UI线程上运行,则可能不会。这是一本好书: