Я не могу очистить свои данные о применении. Если я выбрал имя моего учителя, будет показан график обучения от моего учителя. Но после того, как я выбрал другое имя учителя, расписание данных от первого учителя не может очистить и все еще видно на графике данных последнего учителя.
Это мой сценарий
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;
}
}
}
Пожалуйста, помогите мне
Каждый раз, когда вы выбираете один teavher вы должны обновить идентификаторы также.Так что добавьте строку
iddosen = new ArrayList<String>();
Выше этой линии
In youe JadwalDosen.java файл Сделать это следующее изменение
Это изменение очистит ваш адаптер перед добавлением новых значений к нему, поэтому уже присутствующие значения для предварительно выбранного тренера будут удалены, и вы увидите только новые значения.
Изменение в JadwalDosenAdapter.Ява
Надеюсь, это решит вашу проблему…