我正在开发简单的评分表应用程序屏幕,其中有四个edittext和一个textview,现在我想要的是一旦输入值,得分就会计算并显示在textviews下,如果得分小于100包含所有这些小部件的新布局会自动添加,我的代码是
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none"
androidLid="@+id/main">
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="85dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_marginLeft="96dp"
android:layout_toRightOf="@+id/textView1"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/meld1"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="45dp"
android:ems="10"
android:focusable="true"
android:inputType="number"
android:maxLength="3" />
<EditText
android:id="@+id/meld2"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/EditText02"
android:layout_alignBottom="@+id/EditText02"
android:layout_alignLeft="@+id/textView2"
android:ems="10"
android:focusable="true"
android:inputType="number"
android:maxLength="3" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignLeft="@+id/EditText02"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/EditText02"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/meld1"
android:layout_alignBottom="@+id/meld1"
android:layout_centerHorizontal="true"
android:ems="10"
android:focusable="true"
android:inputType="number"
android:maxLength="3" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView3"
android:layout_marginLeft="108dp"
android:layout_toRightOf="@+id/EditText02"
android:text="Dealer"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/EditText04"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:ems="10"
android:focusable="true"
android:inputType="number"
android:maxLength="3" />
<EditText
android:id="@+id/EditText05"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/EditText04"
android:layout_alignBottom="@+id/EditText04"
android:layout_alignLeft="@+id/meld2"
android:ems="10"
android:focusable="true"
android:inputType="number"
android:maxLength="3" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/EditText04"
android:layout_marginTop="23dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView7"
android:layout_alignBottom="@+id/textView7"
android:layout_alignRight="@+id/EditText05"
android:layout_marginRight="19dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
</LinearLayout>
</ScrollView>
and the layout to be added is
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/add"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/editText1"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="71dp"
android:ems="10" />
<EditText
android:id="@+id/editText2"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:layout_alignBottom="@+id/editText1"
android:layout_alignParentRight="true"
android:layout_marginRight="35dp"
android:ems="10" />
<EditText
android:id="@+id/meld1"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:layout_marginTop="16dp"
android:ems="10" />
<EditText
android:id="@+id/EditText02"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/meld1"
android:layout_alignBottom="@+id/meld1"
android:layout_alignLeft="@+id/editText2"
android:ems="10" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/meld1"
android:layout_marginTop="20dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_alignLeft="@+id/EditText02"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
</LinearLayout>
所以,这里我要做的是在scrollview布局下添加添加布局,在所有四个edittexts中更改文本,我的代码添加布局是
LinearLayout myLayout = (LinearLayout)findViewById(R.id.main);
View hiddenInfo = getLayoutInflater().inflate(R.layout.add, scrollview01, false);
myLayout.addView(hiddenInfo);
但我无法在滚动视图下添加此布局,添加此布局后,我想在每个edittext上添加文本观察器,并仅更新该布局的文本视图
et.addTextWatcher{
//do something
tv.settext(something);
}
现在基于其值的变化,我希望在此添加的布局中更新textviews的值 任何提示或解决方案都将受到高度赞赏。
答案 0 :(得分:1)
您正在尝试将“ScrollView”转换为LinearLayout并添加子项。定义的ScrollViews只能有1个子元素。请尝试引用您的LinearLayout子视图并为其添加视图。
像
这样的东西<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none"
android:id="@+id/main">
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_root"
>
//etc...
然后将新视图添加到线性布局
LinearLayout myLayout = (LinearLayout)findViewById(R.id.main_root);
//context references your activity context.
View hiddenInfo = LayoutInflater.from(context).inflate(R.layout.add, myLayout, true);
请参阅LayoutInflater文档
中的“inflate(int resource,ViewGroup root,boolean attachToRoot)”