У меня есть одно действие, но 3 макета. ListView является частью макета, который отображается после входа в систему. Вот почему я не могу установить ArrayAdapter onCreate, поскольку мой ListView еще не инициализирован. Я пробовал следующий this учебник, но я не смог воспроизвести эти шаги. В этом учебнике автор сделал все, что угодно.Android Добавление элементов ListView из массива JSON
Я пытался делать это так:
ArrayList<String> listItems=new ArrayList<String>();
ArrayAdapter<String> adapter;
...
public class getcontacts extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
...HERE I AM FETCHING DATA...
listItems.add(json_data.getString("login") + " " + derp);
}
@Override
protected void onPostExecute(final Boolean success) {
getc = null;
ac = new addcontacts();
ac.execute(true);
А вот код addcontacts класса:
public class addcontacts extends ListActivity {
protected void onCreate() {
adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
listItems);
setListAdapter(adapter);
adapter.notifyDataSetChanged();
}
protected void execute(final Boolean success) {
done = true;
}
}
И расположение:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="188dp"
android:layout_weight="0.53"
android:text="Fetching contact list" />
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="106dp" >
</ListView>
</LinearLayout>
ListView не содержит что-нибудь. Я проверил в отладчике, что listItems имеет все элементы, поэтому с адаптером что-то не так.
Вы не создаете действия через явный Контрактор, как вы это делали. Вы также должны обратить внимание на то, что вы пишете, 'onCreate()' должен получить Bundle в качестве аргумента. Используйте аннотации '@ Override', это упростится. Кроме того, используйте правильные соглашения об именах и покажите нам, как настроен каждый класс. Если и AsyncTask, и ListActivity являются частью одного и того же файла, не разделяйте их. –
Вот полный код: http://pastebin.com/dA6dcZRv – Disa