我已经在parse.com dashboard中创建了这个数组列。我能够从我的应用程序中添加数组中的值但是无法获取数组或列表并使用其上的任何函数(甚至size())给出该行的零点异常。
我使用了很多解决方案,但都没有。
我的代码,它给出了错误。
real = (TextView) v.findViewById(R.id.realtext);
fake = (TextView) v.findViewById(R.id.faketext);
realbutton = (ImageButton) v.findViewById(R.id.realbutton);
fakebutton = (ImageButton) v.findViewById(R.id.fakebutton);
real.setText(String.valueOf(news.getRealvote()));
fake.setText(String.valueOf(news.getFake()));
fakebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
news.setuserArray(news.getAuthor().getUsername());
List<ParseObject> a = news.getUserArray();
Toast.makeText(c, a.toString(), Toast.LENGTH_SHORT).show();//any thing with a.size() etc anything gives error
news.setFake();
news.saveInBackground();
fake.setText(String.valueOf(news.getFake()));
realbutton.setVisibility(View.GONE);
fakebutton.setVisibility(View.GONE);
}
});
这是我的getUserArray()方法
public List<ParseObject> getUserArray() {
return getList("users_rated");
}
存储数据的方法正在运行
public void setuserArray(String file) {
addUnique("users_rated", file);
}
我已经尝试了很多但没有成功.plss帮助我检索数组。
你要求列表适配器??
public class Customnewslistview extends ParseQueryAdapter<News> {
Context c;
public Customnewslistview(Context context) {
super(context, "News");
c = context;
}
@Override
public View getItemView(final News news, View v, ViewGroup parent) {
if (v == null) {
final TextView real;
final TextView fake;
final ImageButton realbutton;
final ImageButton fakebutton;
final ProgressBar loader;
v = View.inflate(getContext(), R.layout.item_list_news_public, null);
loader = (ProgressBar) v.findViewById(R.id.eachnewsloder);
ParseImageView newsImage = (ParseImageView) v
.findViewById(R.id.icon);
ParseFile photoFile = news.getParseFile("photo");
if (photoFile != null) {
newsImage.setParseFile(photoFile);
newsImage.loadInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
Log.d("done pic", data.toString());
loader.setVisibility(View.GONE);
}
});
} else {
loader.setVisibility(View.GONE);
newsImage.setBackgroundResource(R.drawable.image40);
}
TextView titleTextView = (TextView) v.findViewById(R.id.text1);
titleTextView.setText(news.getTitle());
// trying real fake buttons
real = (TextView) v.findViewById(R.id.realtext);
fake = (TextView) v.findViewById(R.id.faketext);
realbutton = (ImageButton) v.findViewById(R.id.realbutton);
fakebutton = (ImageButton) v.findViewById(R.id.fakebutton);
real.setText(String.valueOf(news.getRealvote()));
fake.setText(String.valueOf(news.getFake()));
realbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
news.setuserArray(news.getAuthor().toString());
news.setRealvote();
news.saveInBackground();
real.setText(String.valueOf(news.getRealvote()));
Toast.makeText(getContext(), "No Cheating",
Toast.LENGTH_SHORT).show();
realbutton.setVisibility(View.GONE);
fakebutton.setVisibility(View.GONE);
}
});
fakebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
news.setuserArray(news.getAuthor().getUsername());
List<ParseObject> a=null;
try {
a = news.fetchIfNeeded().getList("users_rated");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(c, a.toString(), Toast.LENGTH_SHORT).show();
news.setFake();
news.saveInBackground();
fake.setText(String.valueOf(news.getFake()));
realbutton.setVisibility(View.GONE);
fakebutton.setVisibility(View.GONE);
}
});
titleTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog d = new Dialog(c);
d.setContentView(R.layout.publicnewsdialog);
d.setTitle("News");
TextView text = (TextView) d.findViewById(R.id.dialogtext);
text.setText(news.getTitle());
// parsing image
ParseImageView newsImage = (ParseImageView) d
.findViewById(R.id.dialogimage);
ParseFile photoFile = news.getParseFile("photo");
if (photoFile != null) {
newsImage.setParseFile(photoFile);
newsImage.loadInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
Log.d("done pic", data.toString());
}
});
} else {
loader.setVisibility(View.GONE);
newsImage.setBackgroundResource(R.drawable.image40);
}
d.show();
}
});
}
return v;
}
}
答案 0 :(得分:2)
这是我用来获取List
个TrackedLocation
个数据库的ParseQuery<ParseObject> query = ParseQuery.getQuery("TrackedLocation");
query.whereEqualTo("imei", helpUtils.getDeviceIDEqualsIMEI());
query.setLimit(1000);
query.findInBackground(new FindCallback<ParseObject>()
{
@Override
public void done(List<ParseObject> dataList, ParseException e) {}
});
的方法:
dataList
使用ParseObject
回复done
{{1}}的{{1}}来执行您想要的操作。