Android分组文本视图
我的Android应用程序有一个用户必须填写的表单。我在找这样的东西。这我的意思是编辑文本看起来像这样整洁。关于如何在安卓系统中复制这一点的任何建议。我在Android中看到过几个应用程序都有这样的UI。欢迎提出任何建议 亲切问候,Android分组文本视图,android,android-edittext,Android,Android Edittext,我的Android应用程序有一个用户必须填写的表单。我在找这样的东西。这我的意思是编辑文本看起来像这样整洁。关于如何在安卓系统中复制这一点的任何建议。我在Android中看到过几个应用程序都有这样的UI。欢迎提出任何建议 亲切问候, <?xml version="1.0" encoding="utf-8"?> 您可以使用LinearLayout,appyborder.xml作为该LinearLayout的可绘制背景,如下所示: border.xml <?xml ve
<?xml version="1.0" encoding="utf-8"?>
您可以使用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>
<?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>
您可以使用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>
<?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>
编辑了您想要的答案
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());
这对我很有效。如果您有任何问题,请告诉我。编辑了您想要的答案
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());
这对我很有效。如果您有任何问题,请告诉我。使用android很容易实现您想要的目标。你只需要在编辑文本时使用shape drawables 以下是实现此目标的方法:
形状可拉丝
可绘制上部编辑文本
<?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>
<?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 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>
<?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>
生成的布局如下所示:你想用android实现什么目标很容易。你只需要在编辑文本时使用shape drawables 以下是实现此目标的方法:
形状可拉丝
可绘制上部编辑文本
<?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>
<?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 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>
<?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>
生成的布局如下所示:为什么人们认为苹果式的命名对一切都有好处?:'(@Jin35。我必须同意你的看法。但有时这是客户想要的。虽然我们解释了android的特定布局和样式。但没有客户喜欢它:(…我已经看过了。但是这只会给你一个静态的ListView而不是EditText。我希望用户能够在其中键入内容。我遇到了这个例子。问题是我可以在框中键入内容,但无法检索它?@user365019编辑了你想要的答案。如果它为你修复了,请接受。为什么人们认为apple-style命名对任何事情都有好处?:“(@Jin35。我必须同意你的看法。但有时这是客户想要的。虽然我们解释了android特定的布局和样式。但是没有客户喜欢它。”(…我已经看过了。但是这只会给你一个静态的ListView,而不是EditText。我希望用户能够在其中键入内容。我遇到了这个例子。问题是我可以在框中键入内容,但无法检索它?@user365019编辑了你想要的答案。如果它为你修复,请接受。我尝试了这个。仍然没有正确的类型。有人能给我看一个好的android标准输入表单的exmaple吗?不工作意味着??这有什么问题?你能告诉我问题吗?我会帮你解决的。你能看到我编辑的问题吗?我已经把我的代码放在那里了。我想说的是上面的代码,非常简单易懂…请检查一下我对我的努力给予了反馈…alives.Copy并将border.xml代码以相同的文件名粘贴到您的可绘图文件夹中。我尝试了此方法。仍然不是正确的类型。有人能给我看一个好的android标准输入表单的exmaple吗?不工作意味着??这有什么问题吗??您能告诉我问题所在吗?我会为您解决的。您能看到我编辑的表单吗问题。我已经把我的代码放在那里了。我想说的是上面的代码,很容易理解…请检查一下,并给我反馈我的努力…问候。复制并粘贴border.xml代码,在您的可绘图文件夹中使用相同的文件名。我如何在这些代码之间添加一行?要在它们之间添加一行,只需添加一个编辑中间的文本并为其背景创建一个新的可绘制形状。要创建可绘制形状,您可以参考上面的代码,但需要做一些更改。对于中间的行,不应该有任何圆角。因此,请从可绘制形状中删除短号属性,或者将其半径设置为0dp。如何在下注中添加行两者之间?要在中间添加一行,只需在中间添加一个编辑文本,并为其背景创建一个新的可绘制形状。要创建可绘制形状,您可以参考上述代码,但需要做一些更改。对于中间行,不应有任何圆角。因此,从可绘制形状中删除cornet属性或者将其半径设置为0dp