2012-07-23 74 views
0

我的Android應用程序有一個表格,用戶必須填寫。我正在尋找這樣的東西。這http://img688.imageshack.us/img688/4162/photocr.jpg。我的意思是編輯文本看起來像這樣整齊。關於我們如何在Android中複製這些內容的任何建議。我在Android中看到過幾個應用程序,它們都有這樣的UI。任何建議將受到歡迎。Android分組TextView

親切的問候,

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/round_linearlayout" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/first_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/first_name_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/last_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/last_name_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/email_address" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/email_address_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/password" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/password_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/already_have_an_account" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:background="@android:color/transparent" 
     android:padding="20dp" 
     android:text="@string/already_have_an_account" 
     android:textColor="@color/hyperlink" /> 
</LinearLayout> 

回答

3

編輯答案你想要什麼。

public class EditTextView extends LinearLayout{ 

    private LayoutInflater inflater; 
    private EditText edit_text; 
    private TextView item; 
    private View spacer; 

    public EditTextView(Context context) { 
     super(context); 
     inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     initialize(); 
    } 

    public void setLabel(String label){ 
     item.setText(label); 
    } 

    public void setText(String text){ 
     item.setText(text); 
    } 

    public String getText(){ 
     if((edit_text != null)&& (edit_text.getText() != null)){ 
      return edit_text.getText().toString();   
     } 
     return ""; 
    } 

    public void showSpacer(){ 
     spacer.setVisibility(View.VISIBLE); 
    } 

    private void initialize() { 
     inflater.inflate(R.layout.edit_text_view, this); 
     edit_text = (EditText) findViewById(R.id.edit_text); 
     item = (TextView) findViewById(R.id.edit_text_label); 
     spacer = (View) findViewById(R.id.spacer); 
     spacer.setVisibility(View.GONE); 
    } 


} 

用於獲取文本如下

EditTextView textView = (EditTextView) groupedView2.getFieldViewAt(0); 
System.out.println(textView.getText()); 
textView = (EditTextView) groupedView2.getFieldViewAt(1); 
System.out.println(textView.getText()); 

這個工作對我來說非常好。如果您有任何問題,請告訴我。

+1

爲什麼人們認爲蘋果風格的命名對一切都有好處? :'( – Jin35 2012-07-23 05:03:20

+0

@ Jin35。我必須同意你的看法,但有時它的顧客需要什麼,雖然我們解釋了android特定的佈局和樣式,但是沒有顧客喜歡它:(... – san 2012-07-23 05:05:06

+0

我已經看過了。但是這隻給你一個Static ListView而不是一個EditText,我希望用戶能夠輸入這個,我遇到了這個例子http://vladexologija.blogspot.com/2012/03/groupedtextview.html。這是我可以鍵入框,但無法找回? – AndroidDev 2012-07-23 05:34:36

-1

你可以有一個的LinearLayout,APPY border.xml作爲繪製背景到的LinearLayout此:

border.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <stroke 
     android:width="1dp" 
     android:color="@color/grey"/> 
<!-- "#5D2E8C" --> 
    <solid android:color="#ffffff" />  <!-- background to the border --> 
    <padding 
     android:bottom="2dp" 
     android:left="2dp" 
     android:right="2dp" 
     android:top="2dp" /> 
    <corners android:radius="20dp" /> 

</shape> 
  1. 輸入在它爲用戶名一的EditText視圖

  2. 一個TextView與寬度FILL_PARENT和高度= 1DP和背景 顏色爲黑色(這將使您喜歡的感覺線)

  3. 密碼的EditText視圖。

// =========================編輯=============== ================== //

<?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:background="@color/white" 
    android:orientation="vertical" > 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/border" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/first_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/first_name_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 
    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="#000000" 
     /> 

    <EditText 
     android:id="@+id/last_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/last_name_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 
<View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="#000000" 
     /> 
<EditText 
     android:id="@+id/email_address" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/email_address_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 
<View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="#000000" 
     /> 
    <EditText 
     android:id="@+id/password" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/password_hint_text" 
     android:singleLine="true" 
     android:textColor="#778BB0" 
     android:textColorHint="#778BB0" 
     android:textSize="13sp" 
     android:textStyle="bold" /> 
<View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="#000000" 
     /> 
    <Button 
     android:id="@+id/already_have_an_account" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:background="@android:color/transparent" 
     android:padding="20dp" 
     android:text="@string/already_have_an_account" 
     android:textColor="@color/red1" /> 
</LinearLayout> 
</LinearLayout> 
+0

我嘗試這樣做。仍然不是正確的類型。任何人都可以給我看一個好的android標準輸入表單的例子嗎? – AndroidDev 2012-07-23 05:57:24

+0

不工作意味着什麼問題?你能告訴我這個問題嗎?我會爲你解決 – 2012-07-23 06:00:18

+0

你能看到我編輯的問題嗎?我已將代碼放置在那裏。 – AndroidDev 2012-07-23 06:27:47

3

這很容易,你想用android來實現。你只需要爲你的編輯文本使用形狀繪圖。

這裏是你如何能做到這一點:


形狀可繪製
繪製於上編輯文本

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <solid 
     android:color="#ffffff"/> 
    <corners 
     android:topLeftRadius="15dp" 
     android:bottomLeftRadius="0dp" 
     android:topRightRadius="15dp" 
     android:bottomRightRadius="0dp"/> 

</shape> 


drwable較低的編輯文本

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <solid 
     android:color="#ffffff"/> 
    <corners 
     android:topLeftRadius="0dp" 
     android:bottomLeftRadius="15dp" 
     android:topRightRadius="0dp" 
     android:bottomRightRadius="15dp"/> 

</shape> 


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:background="#3434ff" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:padding="50dp" > 

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="fill_parent" 
     android:layout_height="80dp" 
     android:background="@drawable/stack" 
     android:layout_marginBottom="50dp" /> 

    <EditText 
     android:id="@+id/emailEdt" 
     android:layout_width="fill_parent" 
     android:layout_height="60dp" 
     android:background="@drawable/edit_back1" 
     android:hint="Email" 
     android:paddingLeft="10dp" /> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="#5a5a5a" /> 

    <EditText 
     android:id="@+id/passwordEdt" 
     android:layout_width="fill_parent" 
     android:layout_height="60dp" 
     android:background="@drawable/edit_back2" 
     android:hint="Password" 
     android:paddingLeft="10dp" /> 

</LinearLayout> 

得到的佈局將是這樣的:
enter image description here

+0

我如何在這? – AndroidDev 2012-08-08 06:01:42

+0

之間添加一行中添加行只需在兩者之間添加一個編輯文本並創建一個可繪製其背景的新形狀爲了創建可繪製的形狀,您可以參考上面的代碼,但是您需要做一些修改,對於中間行,不應該有任何圓形d角。那麼,從可繪製形狀中刪除短號屬性或將其半徑設置爲0dp – karn 2012-08-09 08:57:23