[英]How to align a TextView, Spinner and Button in same row in android
[英]Align textview and spinner on same row
我想將textview和spinner對齊在同一行,就像這個圖像一樣,但我的屏幕看起來像這樣
另外,如何使用微調器的值更新價格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>
這是因為您在父布局上使用方向為垂直。並且您沒有將任何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是String
像這樣制作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>
將微調器和文本視圖放在水平線性布局中。
實現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));
}
});
將它們包裹成水平方向的線性布局,就像這樣......
<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>
在當前垂直布局中,使用具有水平方向的LinearLayout包裝textview和微調器。
至於你的第二個問題,你只需將價格乘以數量字段中的數字,可以從mySpinner.getSelectedItem()中獲取並根據需要進行投射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.