android中的Textview外观和消失

时间:2012-08-03 04:50:26

标签: android textview

在我的应用程序中,我必须显示3个edittext视图和3个tex tviews,基于某些条件(即)如果它满足某些条件应该显示,否则它不应该。我在xml文件中有这个textviews.How can我实现了这一点......提前谢谢:

我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Item" 
        android:layout_marginLeft="10dp"/>

    <EditText
        android:id="@+id/itemedit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Price" 
        android:layout_marginLeft="10dp"/>

    <EditText
        android:id="@+id/priceedit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:numeric="decimal"/>

    <LinearLayout                                   
          android:orientation="horizontal"          
         android:layout_width="fill_parent"
         android:layout_height="wrap_content">

           <TextView                             -------->TExtview1

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"       
        android:text="Type" 
        android:layout_marginLeft="10dp"/>        
             <TextView                              --------->TExtview2

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:gravity="center_horizontal"  
        android:text="Recurrence" 
       />        

             <TextView                               --------->TExtview3
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="right"       
        android:text="Start Date" 
       />        

         </LinearLayout>

      <LinearLayout 
         android:orientation="horizontal" 
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         >

        <EditText                                     --------->edittext1
        android:id="@+id/recccatedit"
        android:layout_width="110dp"
        android:layout_height="wrap_content"  

        />

        <EditText                                       --------->edittext2
        android:id="@+id/reccedit"
        android:layout_width="80dp"
        android:layout_height="wrap_content" 

        android:numeric="decimal"
        />

    <EditText                                             --------->edittext1
        android:id="@+id/reccdateedit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_weight="1"   
        android:layout_gravity="right"
/>
    </LinearLayout>


            <LinearLayout 
         android:orientation="horizontal" 
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="10dp">

                <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Back" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Save" />

    <Button
        android:id="@+id/btndelete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Delete" />


      </LinearLayout>

</LinearLayout>

我的java类文件:

if(!reccinc.equals("0"))
            {
                System.out.println("Inside if");
            EditText rec=(EditText)findViewById(R.id.reccedit);
            EditText reccdate=(EditText)findViewById(R.id.reccdateedit);
            EditText recctype=(EditText)findViewById(R.id.recccatedit);

            String recc=null;
            String date=null;
            String type=null;
            db.open();               
            if(!intent.getStringExtra("Recc").equals("0"))
            {
                 Cursor c= db.getReccurenceCount(intent.getStringExtra("Recc"));    
                 startManagingCursor(c);
                 recc=c.getString(c.getColumnIndex("increment"));
                 date=c.getString(c.getColumnIndex("startdate"));
                 type=c.getString(c.getColumnIndex("recurrencetype"));
            }

            rec.setText(recc);
            recctype.setText(type);
            reccdate.setText(date);
            }

4 个答案:

答案 0 :(得分:2)

你可以打电话

view.setVisibility(View.GONE);

使视图从布局中消失。你可以打电话

view.setVisibility(View.VISIBLE);

再次将其恢复(假设它尚未从布局中删除)。

答案 1 :(得分:0)

由于您希望在特定条件下显示它们,只需使您的父布局可见性最初为android:visibility =“gone”,如果条件满足,则以编程方式将该布局可见性设置为true,以便在您需要时显示,并且您可以隐藏通过设置可见性来完成布局。

或者,如果您想添加特定的edittext或textview,请从您的Activity中以编程方式添加和删除它们。

您可以按照以下方式为您的edittext执行

在xml中初始化设置visibility =“gone”

在您的代码中的特定条件,即

if(!reccinc.equals("0"))
            {
               System.out.println("Inside if");
               EditText rec=(EditText)findViewById(R.id.reccedit);
               EditText reccdate=(EditText)findViewById(R.id.reccdateedit);
               EditText recctype=(EditText)findViewById(R.id.recccatedit);

                after finding them..
                rec.setVisibity(View.visible);
                recdate.setVisibity(View.visible);
                rectype.setVisibity(View.visible);

       and rest of logic goes here..

希望这个解释对你有用......

答案 2 :(得分:0)

您必须为文字视图提供ID

 <TextView                               
    android:layout_id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="right"       
    android:text="Start Date" 
   />  

然后在java文件中获取

TextView textview =(TextView )findViewById(R.id.text);

然后条件确实

textview.setVisibility(View.INVISIBLE); 
textview.setVisibility(View.VISIBLE);

Gone将从布局中删除您的视图空间

textview.setVisibility(View.GONE);

答案 3 :(得分:0)

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Item" 
    android:layout_marginLeft="10dp"/>

<EditText
    android:id="@+id/itemedit"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <requestFocus />
</EditText>

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Price" 
    android:layout_marginLeft="10dp"/>

<EditText
    android:id="@+id/priceedit"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:numeric="decimal"/>

您可以将linearlayout的id设置为linearlayout1,并将可见性设置为Invisible

<LinearLayout        
      android:id=""@+id/linearLayout1"             
      android:orientation="horizontal"          
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
      android:visibility="invisible">

       <TextView                             -------->TExtview1

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"       
    android:text="Type" 
    android:layout_marginLeft="10dp"/>        
         <TextView                              --------->TExtview2

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"       
    android:gravity="center_horizontal"  
    android:text="Recurrence" 
   />        

         <TextView                               --------->TExtview3
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="right"       
    android:text="Start Date" 
   />        

     </LinearLayout>

你可以将linearlayout的id设置为linearlayout2,并将可见性设置为Invisible

  <LinearLayout 
     android:id="@+id/linearLayout2"
     android:orientation="horizontal" 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
      android:visibility=""invisible"
     >

    <EditText                                     --------->edittext1
    android:id="@+id/recccatedit"
    android:layout_width="110dp"
    android:layout_height="wrap_content"  

    />

    <EditText                                       --------->edittext2
    android:id="@+id/reccedit"
    android:layout_width="80dp"
    android:layout_height="wrap_content" 

    android:numeric="decimal"
    />

<EditText                                             --------->edittext1
    android:id="@+id/reccdateedit"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_weight="1"   
    android:layout_gravity="right"

/&GT;     

        <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_marginTop="10dp">

            <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Back" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Save" />

<Button
    android:id="@+id/btndelete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Delete" />


  </LinearLayout>

你的java文件

我的java类文件:

if(!reccinc.equals("0"))
            {
              linearLayout1.setVisibility(View.VISIBLE);
                System.out.println("Inside if");
            EditText rec=(EditText)findViewById(R.id.reccedit);
            EditText reccdate=(EditText)findViewById(R.id.reccdateedit);
            EditText recctype=(EditText)findViewById(R.id.recccatedit);

            String recc=null;
            String date=null;
            String type=null;
            db.open();               
            if(!intent.getStringExtra("Recc").equals("0"))
            {
                  linearLayout.setVisibility(VIEW.VISIBLE);

                 Cursor c= db.getReccurenceCount(intent.getStringExtra("Recc"));    
                 startManagingCursor(c);
                 recc=c.getString(c.getColumnIndex("increment"));
                 date=c.getString(c.getColumnIndex("startdate"));
                 type=c.getString(c.getColumnIndex("recurrencetype"));
            }

            rec.setText(recc);
            recctype.setText(type);
            reccdate.setText(date);
            }