2016-08-03 41 views
-1

我試圖通過在圖像demo image中看到的屏幕右上角使用十字圖像(cancel_video_image_view在代碼中)來關閉視圖。 ?它正在爲第一次,但不能爲第二次工作,爲什麼就爲第二時間內運行的線程點擊監聽器不能正常工作,請幫助: demo image 這是代碼setonclicklistener在正在運行的線程內不能工作兩次

@Override 
public void onTargetRecognized(final Tracker tracker_, final String targetName_) { 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      if (targetName_.toString().equalsIgnoreCase("TargetOne")) { 
       LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); 
       LinearLayout controls = (LinearLayout) inflater.inflate(R.layout.one_video_gallery, null); 
       viewHolder.addView(controls); 
       info_one_video_gallery = (TextView)findViewById(R.id.info_one_video_gallery); 
       monument_name_one_video_gallery = (TextView)findViewById(R.id.monument_name_one_video_gallery); 
       one_video_gallary_imageview = (ImageView)findViewById(R.id.one_video_gallary_imageview); 
       one_video_gallary_thumbnail = (ImageView)findViewById(R.id.one_video_gallary_thumbnail); 
       final ImageView cancel_video_image_view= (ImageView)findViewById(R.id.cancel_video_image_view); 
       cancel_video_image_view.setClickable(true); 


       one_video_gallary_imageview.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         Intent intent = new Intent(getApplication(),MediaFullScreenImageActivity.class); 
         String monument_images = PropertyFile.TargetOne + "_images"; 
         intent.putExtra("monument_images",monument_images); 
         startActivity(intent); 
        } 
       }); 

       one_video_gallary_thumbnail.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         Intent intent = new Intent(getApplicationContext(), MediaVideoActivity.class); 
         String monument = PropertyFile.TargetOne; 
         intent.putExtra("monument", monument); 
         String monument_images = PropertyFile.TargetOne + "_images"; 
         intent.putExtra("monument_images", monument_images); 
         startActivity(intent); 

        } 
       }); 


       if(cancel_video_image_view.getVisibility() == View.INVISIBLE){ 
        cancel_video_image_view.setVisibility(View.VISIBLE); 
        cancel_video_image_view.setClickable(true); 
        one_video_gallary_imageview.setVisibility(View.VISIBLE); 
        one_video_gallary_thumbnail.setVisibility(View.VISIBLE); 
        info_one_video_gallery.setVisibility(View.VISIBLE); 
        monument_name_one_video_gallery.setVisibility(View.VISIBLE); 

       } 

       cancel_video_image_view.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         Toast.makeText(getApplicationContext(), "You clicked the button", Toast.LENGTH_SHORT).show(); 
         one_video_gallary_imageview.setVisibility(View.INVISIBLE); 
         one_video_gallary_thumbnail.setVisibility(View.INVISIBLE); 
         cancel_video_image_view.setVisibility(View.INVISIBLE); 
         info_one_video_gallery.setVisibility(View.INVISIBLE); 
         monument_name_one_video_gallery.setVisibility(View.INVISIBLE); 


        } 
       }); 

    } 
+0

隨着downvoting,人們至少應該解釋他們認爲是錯誤的帖子(垃圾郵件/無碼/格式/代碼請求/等) – Shaishav

回答

0

我想什麼你不應該在runOnUiThread中放置ClickListener。因爲當onTargetRecongnized被調用時,它只會在短時間內檢查語句並剛剛完成可運行。

+0

嗨@ luopleming,我正在使用wikitude AugmentedReality sdk與Android應用程序。我們必須根據wikitude sdk寫入runOnUiThread。 –

+0

如何將所有onClickListeners從runOnUiThread中取出,然後在單擊時運行runOnUiThread。 – luopleming

+0

如果我喜歡這樣做,wikitude sdk將無法正常工作。 –