我想将textview和微调器对齐在同一行,例如this image,但我的屏幕看起来像this
另外,如何使用微调器的值更新价格textview?假设产品价格是200美元,当我在spinner textview上选择2更改为$ 400时。我该怎么做?
<LinearLayout
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="#E5E5E5"
android:layout_height="fill_parent">
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Qty"
android:textSize="10pt"></TextView>
<Spinner
android:id="@+id/SpinnerFeedbackType"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="fill_parent"
android:entries="@array/feedbacktypelist"></Spinner>
<EditText
android:id="@+id/EditTextName"
android:layout_height="wrap_content"
android:hint="Name"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:inputType="textPersonName"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextEmail"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Email"
android:inputType="textEmailAddress"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextMobile"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Mobile Number"
android:inputType="textEmailAddress"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditCity"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="City"
android:inputType="textEmailAddress"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextFeedbackBody"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Address"
android:inputType="textMultiLine"
android:lines="5"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextComments"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Comments"
android:inputType="textMultiLine"
android:lines="5"
android:layout_width="fill_parent"></EditText>
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Total Order Price:"
android:textSize="10pt"></TextView>
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Rs.6,849"
android:textSize="10pt"></TextView>
<CheckBox
android:id="@+id/CheckBoxResponse"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="@string/feedbackresponse"
android:layout_width="fill_parent"></CheckBox>
<Button
android:id="@+id/ButtonSendFeedback"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/feedbackbutton"
android:onClick="sendFeedback"
android:layout_width="fill_parent"></Button>
</LinearLayout>
答案 0 :(得分:3)
这是因为您在父布局上使用方向为垂直方向。并且您没有将任何parentLayout提供给要水平显示的视图集。 将两个textview和微调器放在LinearLayout中,方向为水平
尝试以下数据:
<LinearLayout
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="fill_parent">
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Qty"
android:textSize="10pt"></TextView>
<Spinner
android:id="@+id/SpinnerFeedbackType"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="wrap_content"
android:weight=".5"
android:entries="@array/feedbacktypelist"></Spinner>
</LinearLayout>
在setOnItemSelectedListener中进行计算
priceTextView.setText(Integer.parseInt(Spinner.getSelectedItem().toString())*
Integer.parseInt(productPrice));
考虑您的productPrice是字符串
答案 1 :(得分:1)
像这样制作xml,这将解决您的问题
<LinearLayout
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="#E5E5E5"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Qty"
android:textSize="10pt"></TextView>
<Spinner
android:id="@+id/SpinnerFeedbackType"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_width="40dp"
android:entries="@array/feedbacktypelist"></Spinner>
</LinearLayout>
<EditText
android:id="@+id/EditTextName"
android:layout_height="wrap_content"
android:hint="Name"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:inputType="textPersonName"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextEmail"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Email"
android:inputType="textEmailAddress"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextMobile"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Mobile Number"
android:inputType="textEmailAddress"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditCity"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="City"
android:inputType="textEmailAddress"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextFeedbackBody"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Address"
android:inputType="textMultiLine"
android:lines="5"
android:layout_width="fill_parent"></EditText>
<EditText
android:id="@+id/EditTextComments"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:hint="Comments"
android:inputType="textMultiLine"
android:lines="5"
android:layout_width="fill_parent"></EditText>
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Total Order Price:"
android:textSize="10pt"></TextView>
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Rs.6,849"
android:textSize="10pt"></TextView>
<CheckBox
android:id="@+id/CheckBoxResponse"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="@string/feedbackresponse"
android:layout_width="fill_parent"></CheckBox>
<Button
android:id="@+id/ButtonSendFeedback"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/feedbackbutton"
android:onClick="sendFeedback"
android:layout_width="fill_parent"></Button>
</LinearLayout>
答案 2 :(得分:0)
将微调器和文本视图放在水平线性布局中。
实现spinner.setOnItemSelectedListener(AdapterView.OnItemSelectedListener)。并根据需要更改TextView文本。
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3)
{
String txtNo=textView.getText().toString().replaceAll("[^0-9]", "");
textView.setText(Integer.parseInt(Spinner.getSelectedItem().toString())*
Integer.parseInt(txtNo));
}
});
答案 3 :(得分:0)
将它们包裹成水平方向的线性布局,就像这样......
<LinearLayout
android:id="@+id/dd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/TextViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Qty"
android:textSize="10pt" >
</TextView>
<Spinner
android:id="@+id/SpinnerFeedbackType"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" >
</Spinner>
</LinearLayout>
答案 4 :(得分:0)
在当前垂直布局中,使用具有水平方向的LinearLayout包装textview和微调器。
至于你的第二个问题,你只需将价格乘以数量字段中的数字,可以从mySpinner.getSelectedItem()中获取并根据需要进行投射。