如何将对象从一个类转到另一个类?

时间:2016-04-14 06:15:35

标签: java android

我是android开发新手。 我正在尝试编写与拍卖相关的应用程序。 我研究了这个开源应用程序示例并尝试对其进行自定义。 http://product.hubspot.com/blog/building-an-auction-app-in-a-weekend

它将Parse应用为服务器以上传和检索数据。

我需要将一个名为AuctionItem的对象从一个类复制到另一个类,以获取该对象中的变量(objectID)。

AuctionItem.java

@ParseClassName("Item")
public class AuctionItem extends ParseObject {

    public AuctionItem() {}

    public String getObjectID() { return getString("objectID");}
    public String getName() {return getString("name");}
    public String getDescription() {return getString("description");}
    public String getDonorName() {return getString("donorname");}

}

ItemListActivity.java

public class ItemListActivity extends ActionBarActivity {
     List<AuctionItem> allItems = new ArrayList<AuctionItem>();
     BaseAdapter adapter;
     DataManager data = DataManager.getInstance();
     String listQuery = DataManager.QUERY_ALL;

     public void setup() {
         allItems = data.getItemsMatchingQuery(listQuery, this);
         adapter = new AuctionItemAdapter();
     }

     public class AuctionItemAdapter extends BaseAdapter {
         @Override
         public AuctionItem getItem(int position) {
              return allItems.get(position);
         }
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
              final AuctionItem item = getItem(position);
         }
     }

DataManager.java

public class DataManager {
     private List<AuctionItem> allItems = new ArrayList<AuctionItem>();
     static DataManager singletonInstance;
     public static final String QUERY_ALL = "ALL";

     public DataManager() {}

     public static DataManager getInstance() {
         if (singletonInstance == null)
           singletonInstance = new DataManager();

         return singletonInstance;
         }
     public List<AuctionItem> getItemsMatchingQuery(String query, Activity context) {
         if (query.equals(QUERY_ALL)) {
         return allItems;
         }

         else {
             ArrayList<String> queryWords = new ArrayList<String>();
             queryWords.addAll(Arrays.asList(query.split(" ")));

             ArrayList<AuctionItem> results = new ArrayList<AuctionItem>();
             for (AuctionItem item : allItems) {
                 for (String word : queryWords) {
                    if (word.length() > 1 &&
                     (item.getName().toLowerCase().contains(word.toLowerCase()) || item.getDonorName().toLowerCase().contains(word.toLowerCase()) ||
                      item.getDescription().toLowerCase().contains(word.toLowerCase())))
                    results.add(item);
                 }
              }

              return results;
         }
    }
}

我想要AuctionItem项目这个对象并从另一个类调用objectID。 我试图制作另一个名为copy and program的拍卖,它喜欢这个:

public AuctionItem copy;
copy = item;

但是当我使用其他类来调用这个变量时,它说: 无法从静态上下文引用非静态字段。

我该怎么做才能得到这个对象。请帮助!!

1 个答案:

答案 0 :(得分:0)

尝试获取您的对象:

public AuctionItem copy;
String item = copy.getObjectID();