我收到了一些错误:
protected String doInBackground(String... args) {
String id = id_anggota.getText().toString();
String nama = nama_anggota.getText().toString();
String kelamin = jenis_kelamin.getText().toString();
String kls = kelas.getText().toString();
String tanggal = tanggal_daftar.getText().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id_anggota", id));
params.add(new BasicNameValuePair("nama_anggota", nama));
params.add(new BasicNameValuePair("jenis_kelamin", kelamin));
params.add(new BasicNameValuePair("kelas", kls));
params.add(new BasicNameValuePair("tanggal_daftar", tanggal));
JSONObject json = jsonParser.makeHttpRequest(url_create_product,
"POST", params);
我得到2种错误:
id_anggota.getText()
。makeHttpRequest
方法无法解决。我可以为此问题做些什么解决方案?
更新
我使用了一些库:
答案 0 :(得分:2)
在AsyncTask
内,请声明一些变量:
private String id ;
private String nama;
private String kelamin ;
private String kls;
private String tanggal;
然后在onPreExecute()
上,您可以为它们设置值:
@Override
protected void onPreExecute(Void result) {
super.onPostExecute(result);
id = id_anggota.getText().toString();
nama = nama_anggota.getText().toString();
kelamin = jenis_kelamin.getText().toString();
kls = kelas.getText().toString();
tanggal = tanggal_daftar.getText().toString();
}
最后在doInBackground()
:
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id_anggota", id));
params.add(new BasicNameValuePair("nama_anggota", nama));
params.add(new BasicNameValuePair("jenis_kelamin", kelamin));
params.add(new BasicNameValuePair("kelas", kls));
params.add(new BasicNameValuePair("tanggal_daftar", tanggal));
答案 1 :(得分:1)
移动
String id = id_anggota.getText().toString();
String nama = nama_anggota.getText().toString();
String kelamin = jenis_kelamin.getText().toString();
String kls = kelas.getText().toString();
String tanggal = tanggal_daftar.getText().toString();
在yourAsyncTask.execute()
之前。
将yourAsyncTask.execute()
更改为yourAsyncTask.execute(id,nama,kelamin,kls,tanggal)
。
并在方法doInBackground()
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id_anggota", args[0]));
params.add(new BasicNameValuePair("nama_anggota", args[1]));
params.add(new BasicNameValuePair("jenis_kelamin", args[2]));
params.add(new BasicNameValuePair("kelas", args[3]));
params.add(new BasicNameValuePair("tanggal_daftar", args[4]));
}
答案 2 :(得分:1)
String id = id_anggota.getText().toString();
String nama = nama_anggota.getText().toString();
String kelamin = jenis_kelamin.getText().toString();
String kls = kelas.getText().toString();
String tanggal = tanggal_daftar.getText().toString();
此getText()
与视图交互,TextView
并且Android OS中的所有视图只能在UI(用户界面线程)中工作。 doInBackground()
创建了一个单独的线程,一个像名称所暗示的后台线程。因此,从TextView
获取文本应始终来自由Android OS管理的UI线程。因此,在UI线程上运行的onPreExecute()
内移动上述代码。
就makeHttpRequest()
而言,只需打开jar文件,看看它是否有makeHttpRequest()
。您可以在命令提示符like this.