其实我发现了一个的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