Как очистить listview мои данные

Я не могу очистить свои данные о применении. Если я выбрал имя моего учителя, будет показан график обучения от моего учителя. Но после того, как я выбрал другое имя учителя, расписание данных от первого учителя не может очистить и все еще видно на графике данных последнего учителя.

Это мой сценарий
JadwalDosen.Ява

package www.kates.com;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;

import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class JadwalDosen extends ListActivity{
	private JadwalDosenAdapter adapter;
	private Spinner dosen;
	private List<String> iddosen = new ArrayList<String>();
	@Override
	public void onCreate(Bundle bundle){
		super.onCreate(bundle);
		setContentView(R.layout.jadwaldosen);
		adapter = new JadwalDosenAdapter(this, getListView().getId());
		setListAdapter(adapter);
		dosen = (Spinner)findViewById(R.id.jadwalnamadosen);
		Connector con = new Connector("get_dosen.php","GET",null) {
			@Override
			public void onFinish(JSONArray data) {
				if(data!=null){
					if(data.length()>0){
						List<String> namaDosen = new ArrayList<String>();
						for(int i=0;i<data.length();i++){
							try {
								iddosen.add(data.getJSONObject(i).getString("IdDosen"));
								namaDosen.add(data.getJSONObject(i).getString("NamaDosen"));
							} catch (JSONException e) {
								e.printStackTrace();
							}
						}
						ArrayAdapter<String> sAdapter = new ArrayAdapter<String>(JadwalDosen.this, android.R.layout.simple_spinner_item,namaDosen);
						sAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
						dosen.setAdapter(sAdapter);
						dosen.setOnItemSelectedListener(new OnItemSelectedListener() {
							public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
								List<NameValuePair> info = new ArrayList<NameValuePair>();
								info.add(new BasicNameValuePair("id_dosen", iddosen.get(pos)));
								Connector con = new Connector("get_jadwal_dosen.php","GET",info) {
									@Override
									public void onFinish(JSONArray data) {
										if(data!=null){
											if(data.length()>0){
												for(int j=0; j<data.length();j++){
													try {
														adapter.add(data.getJSONObject(j));
														adapter.notifyDataSetChanged();
													} catch (JSONException e) {
														e.printStackTrace();
													}
												}
											}
										}
									}
								};
							}

							public void onNothingSelected(AdapterView<?> parent) {
								
							}
						});
					}
				}
			}
		};
	}
}

JadwalDosenAdapter.Ява

package www.kates.com;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import org.json.JSONObject;

public class JadwalDosenAdapter extends ArrayAdapter<JSONObject>{

	public JadwalDosenAdapter(Context context, int resource) {
		super(context, resource);
	}
	@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final JSONObject item = getItem(position);
        if (!item.equals(null)) {
            View view = inflater.inflate(R.layout.jadwal_dosen_item, parent, false);
            try {
                ((TextView)view.findViewById(R.id.jadwal_makul)).setText(item.getString("NamaMakul"));
                ((TextView)view.findViewById(R.id.jadwal_kategori)).setText(item.getString("KategoriJadwal"));
                ((TextView)view.findViewById(R.id.jadwal_hari)).setText(item.getString("Hari"));
                ((TextView)view.findViewById(R.id.jadwal_jam)).setText("Jam ke- : " + item.getString("JamMulai") + " s/d " + item.getString("JamSelesai"));
                ((TextView)view.findViewById(R.id.jadwal_kelas)).setText(item.getString("NamaKelas"));
                ((TextView)view.findViewById(R.id.jadwal_ruang)).setText("Ruangan : " + item.getString("Ruang"));
            } catch (Exception exc) {
            	exc.printStackTrace();
            }
            return view;
        } else {
            return null;
        }
    }	
}

Пожалуйста, помогите мне

2 ответа

  1. Каждый раз, когда вы выбираете один teavher вы должны обновить идентификаторы также.Так что добавьте строку

    iddosen = new ArrayList<String>();
    Выше этой линии

    `List<String> namaDosen = new ArrayList<String>();`
    
  2. In youe JadwalDosen.java файл Сделать это следующее изменение

    info.add(new BasicNameValuePair("id_dosen", iddosen.get(pos)));
                                    Connector con = new Connector("get_jadwal_dosen.php","GET",info) {
                                        @Override
                                        public void onFinish(JSONArray data) {
                                            if(data!=null){
                                                if(data.length()>0){
    
                                                    for(int j=0; j<data.length();j++){
                                                        try {
                                                            adapter.add(data.getJSONObject(j));
                                                            adapter.notifyDataSetChanged();
                                                        } catch (JSONException e) {
                                                            e.printStackTrace();
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    };
    

    Это изменение очистит ваш адаптер перед добавлением новых значений к нему, поэтому уже присутствующие значения для предварительно выбранного тренера будут удалены, и вы увидите только новые значения.

    Изменение в JadwalDosenAdapter.Ява

    Пожалуйста, попробуйте повторно использовать уже созданный вид, чтобы уменьшить усилия
    приложение для рисования нового элемента для каждого элемента и даст вам лучше
    производительность представления списка также.

    Надеюсь, это решит вашу проблему…