0

在我的应用程序中,我必须显示一些 3 个编辑文本视图和 3 个文本视图,基于某些条件(即)如果它满足某些条件,则应该显示,否则它不应该显示。我在 xml 文件中有这个文本视图。我怎样才能做到这一点..提前致谢:

我的 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

4 回答 4

2

你可以打电话

view.setVisibility(View.GONE);

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

view.setVisibility(View.VISIBLE);

把它带回来(假设它没有从布局中删除)。

于 2012-08-03T04:53:37.900 回答
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"/>

you can have a id for linearlayout as linearlayout1 and set visibility as 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>

you can have a id for linearlayout as linearlayout2 and set visibility as 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"

/>

        <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>

your java file

My java class file:

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);
            }
于 2012-08-03T05:03:39.837 回答
0

当您想在特定条件下显示它们时,只需使您的父布局可见性最初为 android:visibility="gone" ,如果条件满足,则以编程方式将该布局可见性设为 true,以便在您需要时显示,您可以隐藏该完整布局通过将可见性设置为消失。

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

您可以通过以下方式为您的编辑文本做

最初在 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..

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

于 2012-08-03T04:57:38.137 回答
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);
于 2012-08-03T04:59:25.097 回答