2012-04-28 123 views
0

我试图设置我的imageview,按钮和textview的可见性。但是当我运行这个程序时,他们仍然在那里。 我试了View.GONE,但只是删除所有的textview,imageview和按钮。但我只想隐藏然后展示。View.Invisible - 图像停留在屏幕上

   list.setOnItemClickListener(new AdapterView.OnItemClickListener() 
      { 
       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, 
         int position, long arg3) 
       { 
               if(baglanti.DegerDogruMu() == true) 
         { 
          ekvar = true; **// If true there is an attachment** 
          gelen = baglanti.EkinIsmi(); 
         } 
         else 
         { 
          ekvar = false; **// False = no attachment** 
         } 

           } 

然后我把结果的意图。

final Intent intent = new Intent(ListeleActivity.this, GoruntuleActivity.class); 
intent.putExtra(ekvarmı, ekvar); 
startActivity(intent); 

而其他活动 调用此方法与添加 “ekvar”

public void ListOnClicklendiginde(final int position , ArrayList<String> bodyliste , ArrayList<String> kimdenlist , ArrayList<String> konulist, boolean ekvarmı , ArrayList<String> ekinismi) 
     { 
**// First I hide the "attachment things"** 


    dosyaAdi.setVisibility(View.INVISIBLE); 
     atacResim.setVisibility(View.INVISIBLE); 
     ekButton.setVisibility(View.INVISIBLE); 

**// If there is an attachment then visible the things. (I debug for the no attachment email and it fall the false so the statement is working ok)** 


    if(ekvarmı == true) 
       { 
        dosyaAdi.setVisibility(View.VISIBLE); 
        atacResim.setVisibility(View.VISIBLE); 
        ekButton.setVisibility(View.VISIBLE); 

       } 
       else 
       { 
        dosyaAdi.setVisibility(View.INVISIBLE); 
        atacResim.setVisibility(View.INVISIBLE); 
        ekButton.setVisibility(View.INVISIBLE); 
       } 
       } 

XML:

<RelativeLayout 
     android:id="@+id/ekTablo" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_x="8dp" 
     android:layout_y="102dp" > 

     <ImageView 
      android:id="@+id/imageViewAttachment" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:src="@drawable/ic_email_attachment" /> 

     <TextView 
      android:id="@+id/dosyaAdi" 
      android:layout_width="210dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ImageButton 
      android:id="@+id/imageButtonEkIndir" 
      android:layout_width="50dp" 
      android:layout_height="16dp" 
      android:layout_centerVertical="true" 
      android:layout_toRightOf="@+id/dosyaAdi" 
      android:src="@drawable/ic_indir" /> 

    </RelativeLayout> 

的红色方块 在他们的图片隐藏 The red squares

+0

你在哪里试图执行上面显示的代码Java代码? – CommonsWare 2012-04-28 20:28:15

+0

在列表视图项onClick。其实列表项OnClick调用此方法的代码是该方法 – Merve 2012-04-28 20:29:46

+0

这段代码看起来不错,View.Gone会完全删除该视图。你必须使用View.Visible和View.Invisible。展示更多代码,以及如何在listview中使用onClick。 – 2012-04-28 20:38:57

回答

1

尝试取得了XML你的意见无形的,改变这样

if(ekvarmı == true) 
      { 
       dosyaAdi.setVisibility(View.VISIBLE); 
       atacResim.setVisibility(View.VISIBLE); 
       ekButton.setVisibility(View.VISIBLE); 

      } 
+0

我试过这看起来像是工作,是的。但它没有改变任何东西。我假设,问题的根源在于;当我点击没有附件的邮件时ekvarmı= false;然后点击带附件的邮件ekvarmı= true;然后我点击没有附件的邮件ekvarmı= true(它应该是false),但我认为它仍然是正确的,并且当我点击没有附件邮件时附件部分仍然出现在屏幕上。我必须在onclick后重置ekvarmı,但我试过这个offcourse但它没有工作.. – Merve 2012-04-28 21:25:36

+0

使用Logcat打印变量的值并使用Android调试系统来跟踪变量的变化。 – 2012-04-28 21:31:37

+0

非常感谢你,我解决了问题,如我说ekvarmı留在ekvarmı= true,我用Log和真正的调试解决了问题。再次感谢。 – Merve 2012-04-29 17:59:28