2016-02-13 17 views
8

मैं एक ऐप बनाने की कोशिश कर रहा हूं, जो पिछली गतिविधि (किसी समस्या के साथ काम करता है) से एक इनपुट चिपकाता है और फिर मुझे डेटाबेस से कुछ चीजें दिखाता है (जब बटनगेट दबाया जाता है)। समस्या यह है कि जब मैं प्रोजेक्ट को चलाने का प्रयास करता हूं, तो मुझे Java.lang.IllegalStateException: Already attached मिलता है। मेरे कोड में क्या गलत है?Java.lang.IllegalStateException: पहले से ही संलग्न

package br.exemplozxingintegration; 

import android.annotation.SuppressLint; 
import android.app.ProgressDialog; 
import android.content.ClipData; 
import android.content.ClipboardManager; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 



public class SecondActivity extends AppCompatActivity implements View.OnClickListener { 



    private EditText pastetext; 
    private ClipboardManager myClipboard; 
    private ClipData myClip; 
    private Button btn; 
    private EditText textView1; 
    private Button buttonGet; 
    private TextView textViewResult; 

    private ProgressDialog loading; 


      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_second); 
       myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
       pastetext = (EditText) findViewById(R.id.textView1); 
       btn = (Button)findViewById(R.id.buttonPaste); 
       btn.performClick(); 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 

       textView1 = (EditText) findViewById(R.id.textView1); 
       buttonGet = (Button) findViewById(R.id.buttonGet); 
       textViewResult = (TextView) findViewById(R.id.textViewResult); 

       buttonGet.setOnClickListener(this); 

      } 



      @SuppressLint("NewApi") 
      public void paste(View view) { 
       ClipData cp = myClipboard.getPrimaryClip(); 
       ClipData.Item item = cp.getItemAt(0); 
       String text = item.getText().toString(); 
       pastetext.setText(text); 
       Toast.makeText(getApplicationContext(), "Text Pasted", 
         Toast.LENGTH_SHORT).show(); 


      } 


    private void getData() { 
     String id = textView1.getText().toString().trim(); 
     if (id.equals("")) { 
      Toast.makeText(this, "", Toast.LENGTH_LONG).show(); 
      return; 
     } 
     loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false); 

     String url = Config.DATA_URL+textView1.getText().toString().trim(); 

     StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       loading.dismiss(); 
       showJSON(response); 
      } 
     }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(SecondActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show(); 
        } 
       }); 

     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 

    private void showJSON(String response){ 
     String name=""; 
     String image = ""; 
     try { 
      JSONObject jsonObject = new JSONObject(response); 
      JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY); 
      JSONObject collegeData = result.getJSONObject(0); 
      name = collegeData.getString(Config.KEY_NAME); 
      image = collegeData.getString(Config.KEY_IMAGE); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     textViewResult.setText("Name:\t"+name+"\nImagine :\t"+ image); 
    } 

    @Override 
    public void onClick(View v) { 
     getData(); 
    } 
} 
+1

यदि आप कभी भी क्रैश देख रहे हैं, तो अपने प्रश्न बताते समय लॉककैट में स्टैक ट्रेस पोस्ट करना सुनिश्चित करें। –

उत्तर

13

अपने onCreate में, आप super.onCreate कॉल कर रहे हैं() दो बार, और भी setContentView() दो बार। मुझे पूरा यकीन है कि आप ऐसा नहीं करना चाहते हैं।

+0

इसकी शायद सुपर कॉल। कॉलिंग सेटकंटेंट दो बार एक समारोह में व्यर्थ है, लेकिन पूरी तरह से कानूनी रूप से कानूनी है। –

+0

super.onCreate को हटाने के बाद, मुझे यह ऐप कॉम्पैक्ट वर्तमान थीम सुविधाओं का समर्थन नहीं करता है। हालांकि मेरे पास थीम – user3026270

+0

@ user3026270 स्थापित है, लेकिन ऐसा लगता है कि आपके पास पूरी तरह से असंबंधित समस्या है जो अब अपना प्रश्न हो सकता है। –

0

समस्या यह है कि आप पहली बार टेक्स्ट व्यू 1 प्रारंभ करते हैं, और बटन क्लिक करते हैं, उस बिंदु पर आप केवल क्रिएट() को कॉल करके किसी भी पिछली सेटिंग्स को रीसेट कर रहे हैं, और perfom से पहले क्लिक करें getData() विधि हिट करें, यहां के अंदर भी पहुंचने का प्रयास करता है टेक्स्ट व्यू 1 से टेक्स्ट लेकिन आपने उसके बाद क्रिएट को कॉल किया और दृश्य को स्क्रैच से सेट किया। यही कारण है कि आप इसे काम नहीं कर सकते हैं, डुप्लिकेट कोड

+0

अब मुझे मिलता है, java.lang.NullPointerException – user3026270

0

हटाएं कृपया लॉगबैक संदेश संलग्न करें और यदि संभव हो तो डीबी फ़ाइल। यह संभव समस्या हो सकती है, आप तालिका में डालने के दौरान पहले ही असाइन किए गए डीबी ऑब्जेक्ट को पुन: असाइन कर सकते हैं।

+0

यह वास्तव में एक टिप्पणी होना चाहिए। – ig0774

+0

https://docs.google.com/document/d/1h4Ix0cwarGglggKK1HPZ_1syDO6Jk2hy01SW_Zwp7wg/edit?usp=sharing – user3026270

+0

मैंने डुप्लिकेट निकाला, और अब मुझे मिलता है, java.lang.NullPointerException – user3026270

संबंधित मुद्दे