2016-02-06 3 views
0

Мне нужно разобрать учетную запись. Я получил данные из разбора, но я не могу добавить его в ArrayList или ListView.
Как добавить данные из parse в Android ListView

Мне удалось получить данные в String, но я не могу добавить их в представление списка.

Вот мой код:

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; 
    } 
} 

} 

Во время выполнения имена выходных отображаются в тосте, но не добавляя список view.Thank вы.

+0

вызов 'adapter.notifyDataSetChanged()' после 'for' цикла в' сделано() '. Вам нужно будет объявить «адаптер» как член класса, например, «arrayList». И вы должны переместить 'setLisData();' call в конец 'onCreate()'. –

+0

Большое спасибо за ваш отзыв –

+0

Брат не работает, просьба дать предложения –

ответ

0

сделать ниже изменения в коде его работы тонкой

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(); 
      } 
     } 
    }); 


} 
+0

Чем вы очень любите, он работает –

Смежные вопросы