![](/img/trans.png)
[英]android how to add ProgressBar to listView fetching data from parse?
[英]How to add data from parse to an Android ListView
我必须解析一个帐户。 我从解析中获取了数据,但是无法将其添加到ArrayList或ListView中。
我设法将数据放入字符串中,但无法将其添加到列表视图中。
这是我的代码:
public class student_login extends Activity implements View.OnClickListener {
private TextView mTextView;
ArrayList arrayList;;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student_login);
arrayList = new ArrayList();
setLisData();
ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_list_view, arrayList);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
Button sub=(Button)findViewById(R.id.button2);
sub.setOnClickListener(this);
}
private void setLisData() {
ParseUser currentUser = ParseUser.getCurrentUser();
String curser = currentUser.getUsername().toString();
final String sc = currentUser.getString("school");
Toast.makeText(getApplicationContext(), "Your id is " + sc, Toast.LENGTH_SHORT).show();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Staff");
query.whereEqualTo("school", sc);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
for (ParseObject parseObject : objects) {
String name = parseObject.getString("Name");
arrayList.add(name);
Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show();
}
}
});
}
public void onClick(View v) {
switch (v.getId()){
case R.id.button2:
// r =movie.getRatingStar();
ParseUser.logOut();
ParseUser currentUser = ParseUser.getCurrentUser(); // should be null but isn't...
invalidateOptionsMenu();
Toast.makeText(getApplicationContext(), "Disconnected...", Toast.LENGTH_LONG).show();
Intent intent = new Intent(this,Login.class);
startActivityForResult(intent,0);
finish();
break;
}
}
}
在运行时,输出名称显示在Toast中,但不添加列表视图。谢谢。
在代码中进行以下更改,效果很好
ArrayAdapter adapter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student_login);
arrayList = new ArrayList();
adapter = new ArrayAdapter<String>(this, R.layout.activity_list_view, arrayList);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
Button sub=(Button)findViewById(R.id.button2);
sub.setOnClickListener(this);
setLisData();
}
private void setLisData() {
ParseUser currentUser = ParseUser.getCurrentUser();
String curser = currentUser.getUsername().toString();
final String sc = currentUser.getString("school");
Toast.makeText(getApplicationContext(), "Your id is " + sc, Toast.LENGTH_SHORT).show();
if(arrayList.size()>0){
arrayList.clear();
}
ParseQuery<ParseObject> query = ParseQuery.getQuery("Staff");
query.whereEqualTo("school", sc);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
for (ParseObject parseObject : objects) {
String name = parseObject.getString("Name");
arrayList.add(name);
Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show();
}
if(arrayList.size()>0 && adapter != null){
adapter.notifyDataSetChanged();
}
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.