मैं एंड्रॉइड विकास के लिए नया हूं और मैं एक छोटा ऐप कोड करने की कोशिश कर रहा हूं जो मुझे बाहरी JSON फ़ाइल को पकड़ने और इसे पार्स करने की अनुमति देता है। मुझे यह काम करने के लिए मिला, हालांकि अगर मैं पृष्ठभूमि में इसे AsyncTask
के रूप में निष्पादित करने का प्रयास करता हूं तो यह काम नहीं करेगा। (विधि findViewById (int) अपरिभाषित
TextView txtView1 = (TextView) findViewById R.id: ग्रहण मुझे त्रुटि
इस पंक्ति मेंविधि findViewById (int) प्रकार LongOperation
के लिए अपरिभाषित है देता है .TextView01);
public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new LongOperation().execute(); } } class LongOperation extends AsyncTask<String, Void, String> { private final Context LongOperation = null; @Override protected String doInBackground(String... params) { try { URL json = new URL("http://www.corps-marchia.de/jsontest.php"); URLConnection tc = json.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(tc.getInputStream())); String line; while ((line = in.readLine()) != null) { JSONArray ja = new JSONArray(line); JSONObject jo = (JSONObject) ja.get(0); TextView txtView1 = (TextView)findViewById(R.id.TextView01); txtView1.setText(jo.getString("text") + " - " + jo.getString("secondtest")); } } catch (MalformedURLException e) { Toast.makeText(this.LongOperation, "Malformed URL Exception: " + e, Toast.LENGTH_LONG).show(); } catch (IOException e) { Toast.makeText(this.LongOperation, "IO Exception: " + e, Toast.LENGTH_LONG).show(); } catch (JSONException e) { Toast.makeText(this.LongOperation, "JSON Exception: " + e, Toast.LENGTH_LONG).show(); } return null; } @Override protected void onPostExecute(String result) { } protected void onPreExecute() { } @Override protected void onProgressUpdate(Void... values) { ProgressDialog pd = new ProgressDialog(LongOperation); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setMessage("Working..."); pd.setIndeterminate(true); pd.setCancelable(false); } }
इसे ठीक करने पर कोई भी विचार:
यहाँ मेरी कोड है?
हे, उत्तर के लिए धन्यवाद। ive ने कोशिश की और मुझे यह त्रुटि दे रही है कि 53 और 54 की पंक्तियों में "मुख्य प्रकार का कोई मुख्य उदाहरण दायरे में उपलब्ध नहीं है"। यहां क्रमांकित पंक्तियों वाला स्रोत है: http://paste2.org/p/1244101 धन्यवाद अग्रिम – robs
आह, आपने इसे एक ही जावा फ़ाइल में बनाया है, बस एक ही जावा फ़ाइल में। मेरे उदाहरण में 'लांगऑपरेशन' एक * सदस्य * वर्ग है, और इसलिए उस उदाहरण तक पहुंच है जो इसे संलग्न करती है। आपके कोड में 'लॉन्गऑपरेशन' एक शीर्ष-स्तरीय वर्ग है, इसलिए 'Main.this' गुंजाइश से बाहर है। समस्या को ठीक करने के लिए, आप या तो 'LongOperation' को स्थानांतरित कर सकते हैं ताकि यह सदस्य वर्ग हो या' LongOperation' के लिए एक कन्स्ट्रक्टर बनाएं जो 'संदर्भ' स्वीकार करता हो। फिर आप कार्य को लात मारने के लिए 'नया LongOperation (this) .execute();' का उपयोग करेंगे। –
यह पूरी तरह से धन्यवाद काम किया! – robs