gpt4 book ai didi

android - 无法将数据从 Mysql 传递到 EditText

转载 作者:行者123 更新时间:2023-11-30 01:09:48 25 4
gpt4 key购买 nike

我的 Activity 无法将数据从 Mysql 显示到 Edittext。

当我选择单个数据时,它在我的项目上出错

在我的logcat中,我可以接收单个数据,但不能传递到我的Edittext中。

这是我的来源:

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.createperson);

firstname = (EditText) findViewById(R.id.editcreatefirstname);
middlename = (EditText) findViewById(R.id.editmiddlename);
lastname = (EditText) findViewById(R.id.editlastname);
alias = (EditText) findViewById(R.id.editaliasname);
gender = (EditText) findViewById(R.id.editgender);
city = (EditText) findViewById(R.id.editcity);
date = (EditText) findViewById(R.id.editdate);
month = (EditText) findViewById(R.id.editmonth);
year = (EditText) findViewById(R.id.edityear);

noID = getIntent().getStringExtra(TAG_PID);

new LoadAllProducts().execute();
}

class LoadAllProducts extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(SingleView.this);
pDialog.setMessage("Loading products. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected String doInBackground(String...param) {

try {
List<NameValuePair>params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("ID_Person", noID));
String url_product_detials = "http://10.0.2.2/getDetails.php?ID_Person="+noID;
JSONObject json = jParser.makeHttpRequest(
url_product_detials, "GET", params);
Log.d("Single Person Details", json.toString());
JSONArray productObj = json
.getJSONArray(TAG_PRODUCT);
for (int i = 0; i < productObj.length(); i++) {

JSONObject person = productObj.getJSONObject(i);


String first = person.getString("First_Name_Person");
String middle = person.getString("Middle_Name_Person");
String last = person.getString("Last_Name_Person");
String al = person.getString("Alias_Person");
String gen = person.getString("Gender_Person");
String cty = person.getString("City_Birth_Person");
String dte = person.getString("Date_Birth_Person");
String mth = person.getString("Month_Birth_Person");
String yr = person.getString("Year_Birth_Person");

firstname.setText(first);
middlename.setText(middle);
lastname.setText(last);
alias.setText(al);
gender.setText(gen);
city.setText(cty);
date.setText(dte);
month.setText(mth);
year.setText(yr);


}


} catch (JSONException e) {

e.printStackTrace();
}
return null;

}
protected void onPostExecute(String file_url) {
// dismiss the dialog once got all details
pDialog.dismiss();
}

}

}

这是我的 logcat 错误

10-23 02:28:51.929: E/AndroidRuntime(1362): FATAL EXCEPTION: AsyncTask #2
10-23 02:28:51.929: E/AndroidRuntime(1362): java.lang.RuntimeException: An error occured while executing doInBackground()
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.lang.Thread.run(Thread.java:856)
10-23 02:28:51.929: E/AndroidRuntime(1362): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4746)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:854)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.view.ViewGroup.invalidateChild(ViewGroup.java:4075)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.view.View.invalidate(View.java:10329)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView.invalidateRegion(TextView.java:4524)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView.invalidateCursor(TextView.java:4467)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView.spanChange(TextView.java:7325)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView$ChangeWatcher.onSpanAdded(TextView.java:8907)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.text.SpannableStringBuilder.sendSpanAdded(SpannableStringBuilder.java:979)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:688)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.text.Selection.setSelection(Selection.java:76)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.text.Selection.setSelection(Selection.java:87)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.text.method.ArrowKeyMovementMethod.initialize(ArrowKeyMovementMethod.java:302)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView.setText(TextView.java:3684)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView.setText(TextView.java:3554)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.EditText.setText(EditText.java:80)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.widget.TextView.setText(TextView.java:3529)
10-23 02:28:51.929: E/AndroidRuntime(1362): at com.sd.tri.SingleView$LoadAllProducts.doInBackground(SingleView.java:114)
10-23 02:28:51.929: E/AndroidRuntime(1362): at com.sd.tri.SingleView$LoadAllProducts.doInBackground(SingleView.java:1)
10-23 02:28:51.929: E/AndroidRuntime(1362): at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-23 02:28:51.929: E/AndroidRuntime(1362): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-23 02:28:51.929: E/AndroidRuntime(1362): ... 4 more
10-23 02:28:55.769: E/WindowManager(1362): Activity com.sd.tri.SingleView has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{40d5f0b8 V.E..... R.....ID 0,0-320,96} that was originally added here
10-23 02:28:55.769: E/WindowManager(1362): android.view.WindowLeaked: Activity com.sd.tri.SingleView has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{40d5f0b8 V.E..... R.....ID 0,0-320,96} that was originally added here
10-23 02:28:55.769: E/WindowManager(1362): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:354)
10-23 02:28:55.769: E/WindowManager(1362): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:216)
10-23 02:28:55.769: E/WindowManager(1362): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.Dialog.show(Dialog.java:281)
10-23 02:28:55.769: E/WindowManager(1362): at com.sd.tri.SingleView$LoadAllProducts.onPreExecute(SingleView.java:75)
10-23 02:28:55.769: E/WindowManager(1362): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
10-23 02:28:55.769: E/WindowManager(1362): at android.os.AsyncTask.execute(AsyncTask.java:534)
10-23 02:28:55.769: E/WindowManager(1362): at com.sd.tri.SingleView.onCreate(SingleView.java:64)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.Activity.performCreate(Activity.java:5104)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
10-23 02:28:55.769: E/WindowManager(1362): at android.os.Handler.dispatchMessage(Handler.java:99)
10-23 02:28:55.769: E/WindowManager(1362): at android.os.Looper.loop(Looper.java:137)
10-23 02:28:55.769: E/WindowManager(1362): at android.app.ActivityThread.main(ActivityThread.java:5041)
10-23 02:28:55.769: E/WindowManager(1362): at java.lang.reflect.Method.invokeNative(Native Method)
10-23 02:28:55.769: E/WindowManager(1362): at java.lang.reflect.Method.invoke(Method.java:511)
10-23 02:28:55.769: E/WindowManager(1362): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-23 02:28:55.769: E/WindowManager(1362): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-23 02:28:55.769: E/WindowManager(1362): at dalvik.system.NativeStart.main(Native Method)

请有人帮助我..

最佳答案

在您的AsyncTask类中,您在doInBackground中执行网络 Activity ,但是当您需要更新用户界面时,应该在onPostExecute中完成> 方法。

 class LoadAllProducts extends AsyncTask<String, String, JSONArray>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(SingleView.this);
pDialog.setMessage("Loading products. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected JSONArray doInBackground(String...param) {
JSONArray productObj = new JSONArray();
try {
List<NameValuePair>params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("ID_Person", noID));
String url_product_detials = "http://10.0.2.2/getDetails.php?ID_Person="+noID;
JSONObject json = jParser.makeHttpRequest(
url_product_detials, "GET", params);
Log.d("Single Person Details", json.toString());
productObj = json.getJSONArray(TAG_PRODUCT);

} catch (JSONException e) {

e.printStackTrace();
}
return productObj;

}
protected void onPostExecute(JSONArray productObj) {

for (int i = 0; i < productObj.length(); i++) {

JSONObject person = productObj.getJSONObject(i);


String first = person.getString("First_Name_Person");
String middle = person.getString("Middle_Name_Person");
String last = person.getString("Last_Name_Person");
String al = person.getString("Alias_Person");
String gen = person.getString("Gender_Person");
String cty = person.getString("City_Birth_Person");
String dte = person.getString("Date_Birth_Person");
String mth = person.getString("Month_Birth_Person");
String yr = person.getString("Year_Birth_Person");

firstname.setText(first);
middlename.setText(middle);
lastname.setText(last);
alias.setText(al);
gender.setText(gen);
city.setText(cty);
date.setText(dte);
month.setText(mth);
year.setText(yr);


}

}
// dismiss the dialog once got all details
pDialog.dismiss();

}

}

关于android - 无法将数据从 Mysql 传递到 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com