Ich bin neu in Android entwickeln. Ich versuche eine Anwendung im Zusammenhang mit der Auktion zu programmieren. Ich habe dieses Open-Source-Beispiel studiert und versucht, es anzupassen. http://product.hubspot.com/blog/building-an-auction-app-in-a-weekendWie bekomme ich ein Objekt von einer Klasse in eine andere Klasse?
Es angewendet Parse als Server zum Hochladen und Abrufen von Daten.
Ich brauche ein Objekt zu kopieren genannt AuctionItem von einer Klasse in einer anderen Klasse für immer Variablen (objectID) in dem Objekt.
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;
}
}
}
Ich möchte AuctionItem Artikel dieses Objekt und rufen objectID von einer anderen Klasse. Ich habe versucht, eine andere Auktion genannt Kopie und Programm machen es gefällt:
public AuctionItem copy;
copy = item;
Aber wenn ich andere Klasse verwenden diese Variable zu nennen, gesagt: Nicht statisches Feld kann nicht von einem statischen Kontext referenziert werden.
Was soll ich tun, um diese object.Please Hilfe zu bekommen !!
aufgrund Ihres "static DataManager-" –
Danke für Antwort. Also, was soll ich für meinen Code tun? – henryptw
Warum verwenden Sie hier ein statisches Schlüsselwort? –