Java.lang.IllegalStateException: уже прилагается

Я пытаюсь создать приложение, которое вставляет вкладку из предыдущего действия (работает без проблем), а затем показывает мне некоторые вещи из базы данных (при нажатии кнопки ButtonGet). Проблема в том, что когда я пытаюсь запустить проект, я получаю Java.lang.IllegalStateException: Already attached. Что не так с моим кодом?

 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

В вашем onCreate вы вызываете super.onCreate() дважды, а также setContentView() дважды. Я уверен, что не то, что вы хотите сделать.

Ответ 2

Проблема заключается в том, что вы сначала инициализируете textView1 и выполняете щелчок на кнопке, в этот момент вы просто перезагружаете любые предыдущие настройки, снова вызывая onCreate(), и до того, как методы perfomClick попадают в метод getData(), внутри также пытается получить доступ к текст из textView1, но вы вызвали onCreate после этого и задали представление с нуля. Вот почему вы не можете заставить его работать, удалите повторяющийся код

Ответ 3

Приложите сообщение logcat и, если возможно, файл DB. Это может быть возможной проблемой. Возможно, вы переназначили уже назначенный объект db при вставке в таблицу.

Ответ 4

Если ни один из приведенных здесь ответов не помог - а сообщение "Журнал" не имеет смысла - я рекомендую вам File-> Invalidate cahce, а затем снова запустите приложение, и, надеюсь, на этот раз журнал покажет правильную трассировку стека.