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线程上运行,则可能不会。这是一本好书: