在我的应用程序中,我必须显示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);
}
答案 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);
}