其實我發現了一個的onCreate惡意代碼:
File nfile = new File(Environment.getExternalStorageDirectory()+"/Android/data/com.nigmagrid.jm.demo/");
nfile.mkdir();
爲什麼你總是創建目錄每次應用程序啓動時間?
如果你真的想把很多微調, 我建議你應該添加你的微調的方式,它以編程方式添加它。 - 首先,你可能會膨脹的主要佈局
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
ViewGroup inflatedLayout = (ViewGroup) inflater.inflate(<your layout xml>, null);
然後把微調內容上ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("Jembatan 1");
adapter.add("Jembatan 2");
adapter.add("Jembatan 3");
我不知道如果每個微調有不同的內容。如果他們這樣做,您可以聲明不同的適配器或從資源創建它。 然後添加你想要的所有微調:
設定爲主要景觀
setContentView(inflatedLayout);
上btn_proses點擊收聽,我建議你不應該創建的AsyncTask的新對象, 聲明它初始化和使用您聲明的實例。
HashMap<String, Object> kirimPaket = new HashMap<String, Object>();
kirimPaket.put("nama", nama);
kirimPaket.put("keterangan", keterangan); // and do the rest ..
kirimPaket.put("spinnerItem", selectedStr);
kirim.execute(kirimPaket);
其中kirim是KirimData的一個實例。 使用HashMap並把你的數據包放在那裏,它會使它變得簡單。
protected class KirimData extends AsyncTask<HashMap<String, Object>, Void, String>
其實我不喜歡的AsyncTask發送參數的方式,谷歌應該做的簡單。 然後敲定它
@Override
protected String doInBackground(HashMap<String, Object>... params) {
try{
HttpClient httpClient = CustomHttpClient.getHttpClient();
HttpPost postRequest = new HttpPost(VarsUrl.getServerAddress()+"simpan-inspeksi-jembatan.php");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
String nama = params[0].get("nama");
String keterangan = params[0].get("keterangan"); // and do the rest ..
String[] selectedStr = params[0].get("spinnerItem");
reqEntity.addPart("nama", new StringBody(nama));
reqEntity.addPart("keterangan", new StringBody(keterangan)); // and do the rest ..
for(int i=0;i<selectedStr.length;i++){
reqEntity.addPart("item_"+i, new StringBody(selectedStr[i]));
}
....
你可以發佈stacktrace嗎? – 2011-12-22 16:58:57