2016-12-27 31 views
0

我無法清除應用程序中的數據。如果我選擇了我的老師的名字,將顯示我的老師的時間表學習。但是當我選擇了另一位姓名老師之後,來自第一位老師的數據時間表不能清楚,並且仍然在數據時間表上看到了老師。如何清除列表查看我的數據

這是我的腳本 JadwalDosen.java

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

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

JadwalDosenAdapter.java

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>{ 
 

 
\t public JadwalDosenAdapter(Context context, int resource) { 
 
\t \t super(context, resource); 
 
\t } 
 
\t @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) { 
 
      \t exc.printStackTrace(); 
 
      } 
 
      return view; 
 
     } else { 
 
      return null; 
 
     } 
 
    } \t 
 
}

請幫我選擇了一個

+0

有一個'上ArrayAdapters clear'方法 –

回答

0

每次teavher你必須更新IDS also.So添加一行

iddosen = new ArrayList<String>(); 這條線之上

`List<String> namaDosen = new ArrayList<String>();` 
0

在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.java

請嘗試重用已創建的視圖,以便將減少 應用的力度,吸引新的元素爲每個項目,並給你的列表視圖的更好 性能爲好。

希望這將解決您的問題...

+0

@adhearie請接受答案如果它解決您的概率。 – MobileEvangelist