在我的活动A 中,我有checkbox
,spinner
和editText
。如果选中checkbox
,则会显示editText
并隐藏spinner
和textView
。否则,它会显示它们。
public void addListenerOnChk() // for checkbox
{
checkBox2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((CheckBox)v).isChecked())
{
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
}
else
{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
}
}
});
所以这是我的layout
在检查checkbox
之前
在
如果未选中该复选框,如何在复选框下方移动进度条(目前它有一个editText空间)?
如果选中了复选框,如何向上移动复选框并隐藏spinner
和text
?感谢。
这里我的布局......对不起,它有点长(但我要改变的是id / ProjectName,id / checkbox2和id / editText)。 id / checkbox2和id / editText位于最后两段。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout"
android:background="@mipmap/background_work_details">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ProjectName"
android:padding="10dp"
android:text="Project/Service/Training"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="11dp" />
<Spinner
android:layout_width="322dp"
android:layout_height="41dp"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="15dp"
android:layout_y="47dp"
android:id="@+id/SpinnerProject"
android:spinnerMode="dropdown" />
<EditText
android:layout_width="339dp"
android:layout_height="156dp"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:paddingBottom="80dp"
android:layout_x="14dp"
android:layout_y="730dp"
android:id="@+id/editTextWorkDescription" />
<SeekBar
android:layout_width="206dp"
android:layout_height="wrap_content"
android:id="@+id/seekBarPercentage"
android:layout_x="30dp"
android:layout_y="189dp"
android:indeterminate="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView5"
android:padding="10dp"
android:text="Time In"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="16dp"
android:layout_y="225dp" />
<EditText
android:layout_width="80dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:focusableInTouchMode="false"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="86dp"
android:layout_y="225dp"
android:id="@+id/TimeIn" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView4"
android:padding="10dp"
android:text="Time Out"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="172dp"
android:layout_y="225dp" />
<EditText
android:layout_width="87dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:focusableInTouchMode="false"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="246dp"
android:layout_y="225dp"
android:id="@+id/TimeOut" />
<Button
android:layout_width="127dp"
android:layout_height="63dp"
android:text="save"
android:drawableRight="@mipmap/save"
android:id="@+id/save"
android:layout_x="217dp"
android:layout_y="891dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/textProgress"
android:layout_x="257dp"
android:textColor="@color/red"
android:layout_y="194dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView7"
android:padding="10dp"
android:text="Travel From"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="262dp" />
<EditText
android:layout_width="223dp"
android:layout_height="85dp"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="14dp"
android:layout_y="300dp"
android:id="@+id/travelFrom" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView15"
android:padding="10dp"
android:text="Travel To"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="390dp" />
<EditText
android:layout_width="97dp"
android:layout_height="35dp"
android:layout_margin="10dp"
android:inputType="numberDecimal"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="15dp"
android:layout_x="255dp"
android:layout_y="470dp"
android:id="@+id/mileage" />
<EditText
android:layout_width="222dp"
android:layout_height="85dp"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:paddingLeft="20dp"
android:layout_x="14dp"
android:layout_y="423dp"
android:id="@+id/travelTo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView16"
android:padding="10dp"
android:inputType="numberDecimal"
android:text="Hotel accomm"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="550dp"
android:allowUndo="true" />
<EditText
android:layout_width="92dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:inputType="numberDecimal"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:hint="RM"
android:paddingLeft="15dp"
android:layout_x="131dp"
android:layout_y="554dp"
android:id="@+id/hotel" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView17"
android:padding="10dp"
android:text="Toll"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="222dp"
android:layout_y="550dp" />
<EditText
android:layout_width="187dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:hint="RM"
android:inputType="numberDecimal"
android:paddingLeft="15dp"
android:layout_x="163dp"
android:layout_y="620dp"
android:id="@+id/business" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView18"
android:padding="10dp"
android:text="Business Expenses"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="620dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView19"
android:padding="10dp"
android:text="Mileage"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="268dp"
android:layout_y="430dp" />
<EditText
android:layout_width="92dp"
android:layout_height="34dp"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.07"
android:hint="RM"
android:inputType="numberDecimal"
android:paddingLeft="15dp"
android:layout_x="263dp"
android:layout_y="554dp"
android:id="@+id/toll" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView20"
android:padding="10dp"
android:text="Work Description"
android:textColor="@color/peru"
android:layout_alignParentTop="true"
android:layout_x="14dp"
android:layout_y="683dp" />
<CheckBox
android:layout_width="112dp"
android:layout_height="53dp"
android:text="outstation"
android:id="@+id/checkBox"
android:textColor="@color/peru"
android:layout_x="232dp"
android:layout_y="662dp"
android:checked="false" />
<CheckBox
android:layout_width="112dp"
android:layout_height="45dp"
android:text="Others?"
android:id="@+id/checkBox2"
android:layout_x="24dp"
android:textColor="@color/peru"
android:layout_y="92dp"
android:checked="false" />
<EditText
android:layout_width="296dp"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:visibility="gone"
android:layout_x="27dp"
android:layout_y="133dp" />
</AbsoluteLayout>
</ScrollView>
答案 0 :(得分:0)
您应该使用OnCheckedChangeListener
,而不是OnClickListener
这样做
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked)
{
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
}
else
{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
}
}
});
答案 1 :(得分:0)
尝试使用OnCheckedChangeListener:
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
}
else{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
}
});
答案 2 :(得分:0)
您的问题是因为absolute_layout
与layout_x
和layout_y
一起使用,因此所有观看次数都位于 x 和的预定义位置y ,无论你删除哪些元素或者你将留下什么元素。
因此,您必须change the layout parameters for the elements不仅要将其设置为VISIBLE
或GONE
,因此完整的解决方案将是:
checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
typeProject.setVisibility(View.VISIBLE);
project.setVisibility(View.GONE);
ProjectName.setVisibility(View.GONE);
// now settings the new parameters
AbsoluteLayout.LayoutParams params = ((AbsoluteLayout.LayoutParams) typeProject.getLayoutParams());
params.x = 100; // the new value
params.y = 100; // the new value
typeProject.setLayoutParams(params);
}
else{
typeProject.setVisibility(View.GONE);
project.setVisibility(View.VISIBLE);
ProjectName.setVisibility(View.VISIBLE);
// use the same way here with 'project' and 'ProjectName'
}
});