Listview添加所有组件的问题

时间:2019-04-07 23:59:32

标签: android

我是androidStudio的新手。我使用relativeLayout创建了一个XML文件,其中包含一个ListView,一个textview和一个EditText。当我将EditText放在TexTView旁边时,ListView“抓住”了这个组件,我无法再单击列表项。我只想拥有一个EditText并能够单击我的列表。

我尝试过更改布局,但是没有任何作用

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
tools:context=".CNE">

<ListView
    android:id="@+id/listaCNE"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />


<TextView
    android:id="@+id/textCand"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_below="@id/listaCNE"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/txtA"
    android:text="Candidatos" />

<EditText
    android:id="@+id/txtA"
    android:layout_width="96dp"
    android:layout_height="wrap_content"
    android:layout_below="@id/listaCNE"
    android:layout_alignParentRight="true" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

我不知道要实现什么UI,只是在这里If this a what your required假设一个UI,然后在.xml中。您也可以单击ListView项,就像在显示Toast的图像中看到的那样对于我点击的位置

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/ll"
        android:padding="16dp">

    </ListView>

    <LinearLayout
        android:layout_alignParentBottom="true"
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <EditText
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="60dp"
            android:hint="EditText"
            android:gravity="center"/>

        <TextView
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="60dp"
            android:text="TextView"
            android:gravity="center"/>

    </LinearLayout>

</RelativeLayout>

答案 1 :(得分:1)

所以我解决了我的问题,我有2个单独的xml文件,其中一个是“ activity_cne.xml”,它实际上是我要使用的UI。另一个是“ listob.xml”,其中定义了哪些元素显示了ListView。这是文件(我在activity_cne.xml文件中添加了一些组件):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="50dp"
android:paddingBottom="50dp"
tools:context=".CNE"
>

<ListView
    android:id="@+id/listaCNE"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></ListView>

<TextView
    android:id="@+id/txtAgC"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="Agregar candidato" />
<EditText
    android:id="@+id/txtA"
    android:layout_width="100dp"
    android:layout_marginTop="20dp"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/butA"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="agregar"
    android:text="AGREGAR" />

<Button
    android:id="@+id/res"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="Reset"
    android:text="RESET" />

<Button
    android:id="@+id/resultados"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="openRes"
    android:text="RESULTADOS" />

<Button
    android:id="@+id/vol"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="showMain"
    android:text="Volver" />

对于listob.xml:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/txtitem"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>

这是我的adpater,以防万一(nombres是一个字符串数组列表,用于填充ListView:

 setContentView(R.layout.activity_cne);
    lista=(ListView)findViewById(R.id.listaCNE);

    arrayAdapter= new ArrayAdapter<String>(this, R.layout.listob, R.id.txtitem,nombres);