Android中的单行TextView和EditText?

时间:2011-12-28 08:29:06

标签: android xml user-interface

我按照以下方式编写XML,list_item2包含TextView和EditText,而list_item是另一个只包含TextView的XML,

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

<TextView android:id="@+id/textItem"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>

    <EditText
    android:id="@+id/editText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
</EditText>

我在ListView中使用xml,例如

public View getView(int position, View convertView, ViewGroup parent) {
        View row;

        if(position!=2) {
                LayoutInflater inflater = getLayoutInflater();
                row = inflater.inflate(R.layout.list_item, parent, false);
        }
        else {
            LayoutInflater inflater = getLayoutInflater();
            row = inflater.inflate(R.layout.list_item2, parent, false);
        }
        TextView tv = (TextView) row.findViewById(R.id.textItem);
        tv.setText(getItem(position));

        tv.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

但它正在创建类似

的输出
 TextView

 EditText

我想要同一行,例如

   TextView        EditText

任何人都可以编辑XML并告诉我在Android应用中创建GUI的层次结构

5 个答案:

答案 0 :(得分:11)

EditTextTextView置于LinearLayout水平方向(默认情况下已应用)并设置layout_weight = 1或其他任何内容{{1} }和EditText

TextView

答案 1 :(得分:2)

使用以下布局

<?xml version="1.0" encoding="utf-8"?
    <LinearLayout
            android:id="@+id/lnrTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

    <TextView android:id="@+id/textItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weight="1"
        android:textSize="16sp" >
    </TextView>

        <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
    android:weight="1"

        android:layout_height="wrap_content" >

    </EditText>
    </LinearLayout>

答案 2 :(得分:1)

添加一个父布局将一个LinearLayout称为xml,如下所示:

<LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal" > 
<TextView android:id="@+id/textItem"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</EditText>
</LinearLayout>

答案 3 :(得分:1)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:orientation="horizontal"
         android:gravity="center"
         android:padding="10dp">

     <TextView android:id="@+id/textItem"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:padding="10dp"
         android:textSize="16sp" >
     </TextView>

     <EditText
         android:id="@+id/editText1"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" >
     </EditText>
 </LinearLayout>

答案 4 :(得分:0)

许多应用程序今天采用了很好的快速解决方案, 将此标记添加到TextView

android:ellipsize="end"
android:maxLines="1"

现在你的textview是一行,最后有三个点。