2012-06-22 33 views
1

我開發了一個簡單的應用程序,其中包含一個textview.and我的問題是我希望在按鈕單擊事件中隱形的這個文本視圖中可見。如何使textview在android中的按鈕單擊事件中可見

在加載時我做這個

myTextView.setVisible(View.GONE); 

,並在此之後,在按鈕單擊事件,我這樣做。

myTextView.setVisible(View.VISIBLE); 

該textview是可見的,但它重疊在下面的TextView意味着myTextView不能包含空間。那麼我現在能做什麼?

+0

在這個應用程序,我使用後你的XML佈局代碼在這裏 –

+0

只有xml文件中的佈局,並且所有代碼textview都是在java代碼運行庫中生成的,此代碼位於下面的代碼中:下面的代碼是新的TextView(myContext); txtAnsBorrow.setId(k + 2); txtAnsBorrow.setVisibility(View.GONE); \t \t \t \t \t \t \t RelativeLayout.LayoutParams ansBorrowlayout = new RelativeLayout.LayoutParams(LayoutParams。WRAP_CONTENT,LayoutParams.WRAP_CONTENT); –

+1

我們需要xml文件中的佈局.... –

回答

5

使用

myTextView.setVisible(View.INVISIBLE);

,而不是

myTextView.setVisible(View.GONE); 

堅持的空間佈局.........

+0

但是這是可能的,當我做是不可見的(使用GONE)比空間是刪除,當我使用setVisible(View.Visible)比空間重新分配其可能? –

+0

是非常多的這個你需要糾正你的佈局....... –

+0

什麼修正? –

0

如果您正在使用的RelativeLayout,在第二個文本視圖中指定android:layout_below="id_of_above_text_view"

如果你不指定關係中相對佈局的意見後,會出現一個以上的其他

0

代碼中的微小變化應該使它正常工作,我相信。

myTextView.setVisibility(View.INVISIBLE); 

和按鈕點擊後,

myTextView.setVisibility(View.VISIBLE); 

對於在Java代碼中做它,必須在此一展身手(還沒有嘗試過了自己雖然)...

RelativeLayout rl = new RelativeLayout(this); 
ImageView iv = new ImageView(this); 
iv.setImageResource(R.drawable.xxx); 
TextView txt = new TextView(this); 
txt.setText("XXX"); 
rl.addView(iv,0); 
rl.addView(txt,1); 
+0

我也做到這一點,但我想隱瞞不只有textview,但也tetxview包含空間? –

+0

在這種情況下,轉到您的xml文件並在組件的代碼中提及屬性android:layout_below =「idOfYourTextView」,該組件的代碼與TextView頂部重疊。 – Swayam

+0

,但我從來沒有使用textview的XML文件,我在Java文件中創建它可能嗎? –

0

試試這個:

RelativeLayout layout = new RelativeLayout(this); 
TextView tv1 = new TextView(this); 
tv1.setText("A"); 
tv1.setId(1); 

TextView tv2 = new TextView(this); 
tv2.setText("B"); 
tv2.setId(2); 

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
     RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT); 
lp.addRule(RelativeLayout.BELOW, tv1.getId()); 

layout.addView(tv1);   
layout.addView(tv2, lp); 

,當你瓚請在myTextView的父視圖(此處佈局)或佈局的根視圖(layout.getRootView())上調用invalidate()

0

這將在按下相應按鈕時顯示和隱藏文本。 如果你想控制的按鈕多個文本非常有用

1)XML文件:

    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="5dp" 
        android:orientation="vertical" 
        android:gravity="center_vertical"> 
        <TableRow 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="center" > 
        <Button 
         android:text="The Origin" 
         android:id="@+id/btnOrigin" 
         android:onClick="buttonOnClick"/> 
        </TableRow> 
        <TableRow 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="center" > 
         <TextView 
          android:id="@+id/txtOrigin" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/about" 
          android:textColor="#000" 
          android:textSize="@dimen/text_body" 
          android:gravity="center_vertical" 
          android:layout_marginLeft="10dp" 
          android:layout_marginRight="10dp" 
          android:visibility="gone"/> 
        </TableRow> 
       </LinearLayout> 
       <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="5dp" 
        android:orientation="vertical" 
        android:gravity="center_vertical"> 
        <TableRow 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="center" > 
         <Button 
          android:text="Vision" 
          android:id="@+id/btnVision" 
          android:onClick="buttonOnClick"/> 
        </TableRow> 
        <TableRow 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="center" > 

         <TextView 
          android:id="@+id/txtVision" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/vision" 
          android:textColor="#000" 
          android:textSize="@dimen/text_body" 
          android:gravity="center_vertical" 
          android:layout_marginLeft="10dp" 
          android:layout_marginRight="10dp" 
          android:visibility="gone"/> 
        </TableRow> 
       </LinearLayout> 

2)JAVA代碼

 private TextView txtOrigin, txtVision; 


     public void buttonOnClick(View view) { 
     switch (view.getId()) { 
      case R.id.btnOrigin: 
       txtOrigin = (TextView) findViewById(R.id.txtOrigin); 
       txtOrigin.setVisibility(View.VISIBLE); 
       txtVision = (TextView) findViewById(R.id.txtVision); 
       txtVision.setVisibility(View.INVISIBLE); 
       break; 
      case R.id.btnVision: 
       txtVision = (TextView) findViewById(R.id.txtVision); 
       txtVision.setVisibility(View.VISIBLE); 
       txtOrigin = (TextView) findViewById(R.id.txtOrigin); 
       txtOrigin.setVisibility(View.INVISIBLE); 
       break; 
       } 
      } 
相關問題