0

를 호출 할 때 나는 다음과 같은 GET "java.lang.IllegalArgumentException가보기 창 관리자에 연결되지 않은" "java.lang.IllegalArgumentException가 :보기 창 관리자에 연결되지": 토스트

이 때 토스트를 발생 .show()이 호출됩니다.

설명 좀 해주시겠습니까? 고마워요 !!!!

편집 : 나는 모든 코드 +를 로그 캣

코드를 게시 - toast.show()이 리스너에서 호출 될 때 오류가 발생합니다.

public class MainActivity extends Activity { 
    private Gallery gal; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     String[] descrizione = {"cani","boffo","gigo","belo","fyyfy","bogin","boginetti","zippe","ninne","cestino","cagnin o","cucciolo",}; 
     ArrayList<Elementi> el = new ArrayList<Elementi>(10); 
     int[] tabDrawables = new int[] { 
        R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img1,R.drawable.img4,R.drawable. img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.img9,R.drawable.img10}; 

     for (int numero =1; numero < 10;numero++) { 
      ImageView imgm = new ImageView(this); 
      imgm.setImageResource(tabDrawables[numero]); 
      el.add(new Elementi(imgm,descrizione[numero])); 
      }; 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Gallery gal=(Gallery)findViewById(R.id.galleria); 
     gal.setAdapter(new MyAdapter(el)); 
     gal.setOnItemClickListener(new MyListener(this));  

    } 
public class MyAdapter extends ArrayAdapter<Elementi> { 
     public MyAdapter(ArrayList<Elementi> list) { 
     super(MainActivity.this, R.layout.row, list);} 

    public View getView(int position, View convertView,ViewGroup parent) { 
      View row= convertView; 
      if(row==null){ 
       LayoutInflater inflater = (LayoutInflater)  MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       row = inflater.inflate(R.layout.row, null);  
      } 

       TextView txt =(TextView)row.findViewById(R.id.testorow); 
       txt.setText(getItem(position).tx) ; 
       ImageView ima =(ImageView)row.findViewById(R.id.immagine); 
       ima.setImageDrawable(getItem(position).im.getDrawable()); 
       return row;}; 

} 


public class Elementi { 
public ImageView im; 
public String tx; 
public Elementi(ImageView img,String txt){ 
     im =img; 
     tx = txt;  
    } 
} 

public class MyListener implements AdapterView.OnItemClickListener { 
    private final Context mContext; 
    public MyListener(Activity ctx) { 
      mContext = ctx; 
     } 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     Toast toast = new Toast(mContext); 
     toast.setView(arg1); 
     toast.show(); 

    }} 

} 

당신의 arg1보기 이미 부모 (갤러리)가 ... 그리고보기는 하나의 부모를 가질 수 있기 때문입니다 로그 캣

11-30 17:26:35.421: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:35.440: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:35.440: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:35.681: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:35.681: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:35.961: D/dalvikvm(765): GC_CONCURRENT freed 270K, 14% free 2571K/2968K,  paused 18ms+3ms, total 56ms 
11-30 17:26:35.961: D/dalvikvm(765): WAIT_FOR_CONCURRENT_GC blocked 38ms 
11-30 17:26:36.131: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.140: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.140: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.241: D/dalvikvm(765): GC_CONCURRENT freed 239K, 12% free 2805K/3172K,  paused 21ms+8ms, total 64ms 
11-30 17:26:36.261: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.301: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.331: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.341: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.371: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.371: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.391: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.391: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.400: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.400: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.421: D/gralloc_goldfish(765): Emulator without GPU emulation detected. 
11-30 17:26:36.451: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:36.501: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.158: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.161: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.171: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.171: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.191: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.191: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.281: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.301: W/Trace(765): Unexpected value from nativeGetEnabledTags: 0 
11-30 17:26:39.310: D/AndroidRuntime(765): Shutting down VM 
11-30 17:26:39.310: W/dalvikvm(765): threadid=1: thread exiting with uncaught exception  (group=0x40a70930) 
11-30 17:26:39.321: E/AndroidRuntime(765): FATAL EXCEPTION: main 
11-30 17:26:39.321: E/AndroidRuntime(765): java.lang.IllegalArgumentException: View not  attached to window manager 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:383) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:285) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:79) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.widget.Toast$TN.handleShow(Toast.java:396) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.widget.Toast$TN$1.run(Toast.java:310) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.os.Handler.handleCallback(Handler.java:725) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.os.Handler.dispatchMessage(Handler.java:92) 
11-30 17:26:39.321: E/AndroidRuntime(765): at android.os.Looper.loop(Looper.java:137) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  android.app.ActivityThread.main(ActivityThread.java:5039) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  java.lang.reflect.Method.invokeNative(Native Method) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  java.lang.reflect.Method.invoke(Method.java:511) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
11-30 17:26:39.321: E/AndroidRuntime(765): at  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
11-30 17:26:39.321: E/AndroidRuntime(765): at dalvik.system.NativeStart.main(Native  Method) 
11-30 17:26:42.031: I/Process(765): Sending signal. PID: 765 SIG: 9 

답변

4

나는 같은 뷰가 여러 개에 첨부 할 수 없습니다 수 없기 때문에 문제가이 toast.setView(arg1);에서 코드에있다 생각 사물. 이보기는 이미 갤러리 항목에 첨부되어 있습니다.

업데이트 당신은 단지 현재보기의 동일한 값을 사용 layoutInflator하여 해당보기를 다시 다음 토스트에 새로운보기를 통과해야합니다.

+0

감사합니다. 그렇다면이 코드를 어떻게 수정합니까? –

1

.

그것은 당신이 먼저 갤러리에서 제거하지 않는 한 Toast에 첨부 할 수 없음을 의미

+0

감사합니다. 갤러리에서 제거하려면 어떻게하나요? –

+0

코드 – fiddler

+0

을 추가했습니다. ((ViewGroup) arg1.getParent()) .l removeView (arg1) 어쨌든 작동하지 않습니다. –

1

UI 항목에 'getApplicationContext()'를 사용하지 말고 대신 Activity 컨텍스트를 사용하십시오. 예.


public class MyListener implements AdapterView.OnItemClickListener { 

    private final Context mContext; 

    public MyListener(Activity ctx) { 
     mContext = ctx; 
    } 

    @Override 
    public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { 
     Toast toast = new Toast(mContext); 
     toast.setView(arg1); 
     toast.show(); 

    }}

더 좋은 물건을 단순화하기 위해 활동에 AdapterView.OnItemClickListener을 구현하는 것입니다 :


public class MainActivity implements AdapterView.OnItemClickListener { 
//start onCreate 
gal.setOnItemClickListener(this); 
//end onCreate 

@Override 
    public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { 
     Toast toast = new Toast(this); 
     toast.setView(arg1); 
     toast.show(); 

    }} 

을 즉, 그것을 해결 스택 추적과 질문을 업데이트하지 않습니다.

+0

감사합니다. 귀하의 제안은 매우 합리적인 것이지만 불행하게도 효과가 없습니다. –